#include<iostream>
#include <algorithm>
#include "ops.h"
#include "tensor.h"
//#include <memory>

int main(int argc, char* argv[]) {
    
    const std::string  INPUT = "../weight_int8/0.raw" ;
    const std::string CONV1W = "../weight_int8/1.raw";
    const std::string CONV2W = "../weight_int8/2.raw";
    const std::string   FC1W = "../weight_int8/3.raw"  ;
    const std::string   FC2W = "../weight_int8/4.raw"  ;

    Tensor input  = Tensor::fromFtmpFile(INPUT,  { 1,1,28,28});     // Tensor input  = Tensor(INPUT,{1,1,28,28});
    Tensor conv1w = Tensor::fromFtmpFile(CONV1W, { 32,1,3,3});      // Tensor conv1w = Tensor(CONV1W, { 32, 1, 3, 3 });
    Tensor conv2w = Tensor::fromFtmpFile(CONV2W, { 32,32,3,3});     // Tensor conv2w = Tensor(CONV2W, { 32, 32, 3, 3 });
    Tensor fc1w   = Tensor::fromFtmpFile(FC1W,  { 1,54*288,1,1});   // Tensor fc1w = Tensor(FC1W, { 1, 54*288, 1, 1 });
    Tensor fc2w   = Tensor::fromFtmpFile(FC2W,  { 1,10*54,1,1});    // Tensor fc2w = Tensor(FC2W, { 1, 10*54, 1, 1 });

    std::shared_ptr<int8_t[]> CONV1B(new int8_t[32]{0});
    std::shared_ptr<int8_t[]> CONV2B(new int8_t[32]{0});
    std::shared_ptr<int8_t[]> FC1B(new   int8_t[54]{0});
    std::shared_ptr<int8_t[]> FC2B(new   int8_t[10]{0});
    Tensor conv1b = Tensor(CONV1B, { 1, 32, 1, 1 });
    Tensor conv2b = Tensor(CONV2B, { 1, 32, 1, 1 });
    Tensor fc1b = Tensor(FC1B, { 1, 54, 1, 1 });
    Tensor fc2b = Tensor(FC2B, { 1, 10, 1, 1 });

    Tensor conv1 = MaxPool(Relu_ops(AddBias_op(Conv2d_op_T(input, conv1w), conv1b)));
    Tensor conv2 = MaxPool(Relu_ops(AddBias_op(Conv2d_op_T(conv1, conv2w,{2,2},4), conv2b)));
    Tensor fc1 = Relu_ops(AddBias_op(Connect(conv2, fc1w,4), fc1b));
    Tensor fc2 = Connect(fc1, fc2w,4);

    // Tensor result = Softmax(fc2);   
    // auto output = TopK(result, 3);
    // std::cout << "Predictions: " << std::endl;
    // for (int i = 0; i < output.size(); i++) {
    //     auto c = output[i];
    //     std::cout<< c.first<< " "<<c.second << std::endl;
    // }  
    for (int i = 0;i<10;i++){
        std::cout << " " <<signed(fc2.data()[i]);    
    }

    std::cout <<std::endl<< "finish" << std::endl;
    return 0;
}

    //std::shared_ptr<int8_t[]> INPUT(new  int8_t[28*28]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2,0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 2, 4, 3, 0, 0, 0, 0, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 3, 4, 5, 4, 5, 4, 4, 5, 4, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 5, 4, 5,5, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3,3, 4, 5, 4, 4, 5, 5, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 2, 4, 2, 3, 4, 4, 4, 4, 5, 5, 4, 4, 5, 1, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 3, 3, 4, 4, 4, 4, 4, 5, 4, 4, 5,3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 3, 3, 4, 4, 4, 4,4, 4, 4, 4, 4, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 3, 3, 3,4, 4, 4, 4, 5, 5, 4, 4, 4, 4, 4, 4, 5, 1, 0, 0, 1, 1, 2, 2, 2, 3,4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 2, 0, 2,3, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3, 4, 4, 4, 4, 3, 4, 4, 4, 4,4, 4, 5, 2, 2, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 5,5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 0, 3, 5, 5, 5, 5, 5, 4, 4, 3, 3, 3,4, 5, 5, 6, 6, 7, 6, 5, 7, 7, 7, 7, 7, 6, 6, 1, 0, 0, 0, 0, 2, 3,5, 5, 5, 6, 6, 6, 6, 5, 4, 2, 0, 0, 0, 0, 5, 6, 5, 5, 4, 4, 4, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0});
    // std::shared_ptr<int8_t[]> CONV1W(new int8_t[32*1*3*3]{0,-1,0,1,2,1,-1,2,-1,-3,1,0,-1,0,2,-1,2,0,0,-2,1,0,1,1,-1,0,1,-1,0,3,0,-3,1,-1,-4,0,0,3,2,-3,-1,3,-5,-3,0,0,2,0,0,0,0,-2,3,-3,0,-2,1,1,-2,2,-2,-2,2,-2,-3,3,-1,0,1,2,-2,-1,-4,-2,0,-2,-3,0,-1,0,4,-3,-6,-4,2,1,0,2,0,2,-3,1,1,-3,-1,3,-3,0,3,-1,1,-2,0,-2,2,1,-1,2,-1,2,-2,0,-1,-2,-3,3,2,-3,-1,-1,-2,2,2,0,2,-1,-1,-5,-7,0,0,0,3,1,1,0,-1,2,-2,0,1,0,2,-1,-4,-2,-3,-2,-2,0,2,1,3,1,2,4,0,-1,-3,-1,-4,-5,0,-2,2,-2,-3,2,2,-2,1,2,2,2,-1,-1,-1,-1,0,0,1,-1,-1,2,-2,-3,3,-1,-2,-1,1,-3,0,3,-3,3,-1,-2,1,0,3,2,2,0,-2,-1,-3,0,1,0,0,-1,-1,0,1,0,0,3,-1,-2,1,3,-5,0,0,-1,1,-2,2,-2,0,-1,1,2,-3,0,1,1,-1,1,-3,-1,3,1,2,1,-1,1,-2,0,-1,1,3,0,-3,3,0,-3,-1,2,-2,1,2,0,1,0,1,-1,1,-1,1,0,0,2,-1,0,-2,-2,1,1,0,0,-1,0,-1,1,0,2});
    // std::shared_ptr<int8_t[]> CONV1B(new int8_t[32]{0});
    // std::shared_ptr<int8_t[]> CONV2W(new int8_t[32*32*9]{-1,-1,-2,0,1,-2,0,-1,-4,1,1,-1,1,1,-4,1,0,-4,-1,0,-1,0,0,-2,1,-2,-4,-1,1,6,0,0,2,0,-1,2,-2,-1,4,-2,-1,1,-1,-2,0,-2,0,-1,0,1,-2,0,1,-4,0,1,2,1,0,2,2,-5,-1,0,2,4,1,1,2,1,-1,0,4,2,1,2,0,0,3,0,4,1,0,0,0,-1,0,-1,1,1,2,2,2,2,1,-1,3,-1,-2,0,0,0,1,-1,-3,1,-1,-2,1,1,-2,0,-1,-4,1,1,-3,1,1,-1,2,1,-2,1,0,-3,0,0,0,-1,0,0,0,2,2,-1,1,-1,1,0,-3,2,-1,-3,3,1,0,2,0,-2,2,2,4,-2,2,6,-1,2,4,-1,4,4,1,1,3,0,-1,1,2,-2,1,-4,-1,0,-2,0,-1,-1,-1,-2,-2,-1,3,1,2,2,7,4,1,-2,1,1,2,3,0,4,4,-2,-3,0,0,0,0,0,0,1,-2,-2,0,0,0,0,-2,1,0,-2,-1,-1,2,0,0,-1,1,-2,-3,-1,-1,-2,0,0,-2,1,0,-3,1,2,1,1,0,0,1,-4,-2,-3,-1,-1,-1,0,-2,1,1,-2,-3,-1,2,0,1,2,2,3,0,-2,-2,-1,0,0,-2,-1,0,-4,-1,0,0,0,1,0,1,0,-1,-2,-1,-1,-1,-1,-3,1,0,-2,0,0,-1,-1,0,0,-1,-1,-1,0,0,0,0,0,-1,0,-1,0,0,0,-1,0,-1,0,-1,0,-1,0,0,0,1,0,0,0,0,-1,0,0,-1,1,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,-1,0,-1,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,-1,-1,0,0,0,0,0,0,-1,0,-1,0,0,-1,0,0,0,0,-1,0,0,0,-1,-1,0,-1,-1,0,0,-1,0,0,0,0,0,-1,0,-1,0,-1,0,-1,-1,0,0,-1,0,0,-1,-1,0,0,0,0,0,0,-1,-1,0,-1,0,-1,0,-1,0,0,-1,0,-1,0,-1,0,1,0,0,0,0,-1,0,0,1,0,0,0,0,0,-1,0,-1,0,0,1,0,0,-1,-1,1,1,0,0,0,0,0,0,-1,0,1,0,0,-1,0,-1,-1,-1,1,0,-1,0,0,0,0,-1,-1,1,0,0,0,-1,0,0,-1,-1,0,0,-1,0,0,0,-1,0,-1,0,0,-1,0,0,0,0,0,-1,0,-1,-1,-1,0,-1,-1,1,0,0,0,-1,1,0,-1,0,0,0,0,0,0,-1,1,0,0,0,0,1,0,-1,0,0,-1,-1,0,-1,1,0,-1,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,-1,1,0,0,0,0,-2,-2,-2,0,-1,0,-1,-1,0,-2,-1,-1,0,0,0,-1,0,0,-2,-1,-1,4,1,0,2,3,2,0,1,2,2,2,-1,1,3,1,0,2,3,1,0,-1,0,0,0,-1,-1,-1,1,-1,-1,0,0,0,-3,0,1,3,0,0,2,2,0,0,1,1,0,-1,-1,-1,-1,-2,-3,2,2,-1,0,3,0,-1,0,1,2,-1,1,0,-2,-1,1,1,-4,0,1,0,0,0,-1,-1,0,-2,-1,-1,0,1,1,0,0,1,0,-1,0,-1,0,0,0,-1,-1,-2,-2,-1,-1,1,2,-1,-1,0,1,2,0,1,0,-1,-1,0,0,-2,-1,-1,1,2,2,0,-1,-2,1,3,1,5,2,-2,3,3,1,2,5,1,3,-1,0,1,1,1,0,0,1,0,1,0,0,1,0,-1,0,0,-2,-2,0,0,0,1,2,1,0,-3,0,0,-1,0,0,1,0,-2,1,0,0,0,2,1,-1,0,0,-1,1,0,0,0,0,-1,-1,-1,2,1,0,0,1,1,-2,1,2,0,1,0,0,-1,0,-2,-2,0,0,-1,0,0,0,-1,-4,0,1,-1,1,0,0,1,0,-1,-1,-1,-1,0,0,1,1,0,2,2,0,0,0,0,-1,1,0,-1,-2,-1,0,0,0,0,0,1,-1,-1,0,0,1,0,-1,0,0,-1,-2,-1,0,-1,1,-1,0,1,0,0,0,-1,2,1,-1,1,1,0,1,0,0,0,1,-1,1,0,0,0,0,-4,-1,-1,-1,-2,0,-1,-3,-1,-6,-1,0,-1,0,0,-2,-1,-2,-3,0,1,-1,0,1,-1,0,1,0,0,1,0,0,-1,0,-2,-2,2,5,1,0,0,2,0,0,0,4,3,-1,0,1,-1,0,-2,-4,3,0,-2,0,0,-2,2,0,-2,0,3,1,-1,0,1,-1,-1,-3,-1,0,1,-1,1,1,0,1,-1,0,1,0,0,2,-1,0,1,-1,0,2,1,-1,1,1,1,0,-1,4,-1,-2,-2,1,-1,2,0,-1,-2,1,2,-1,2,1,0,0,0,4,3,-1,-1,1,0,3,1,-4,-1,-1,0,0,-2,0,-1,-2,-2,2,3,1,-1,0,1,0,-1,-1,-5,-2,0,0,0,0,-1,0,1,1,-2,0,-1,-3,1,-1,-3,2,1,-2,0,0,-2,2,0,-2,3,-2,-1,1,-1,1,1,-1,0,0,-1,-1,0,-1,0,0,-1,1,1,-5,1,1,-1,2,-1,-1,-1,-3,-1,1,1,0,0,0,0,1,0,0,2,1,1,0,0,0,0,-1,-3,-1,1,0,0,1,0,0,1,3,-4,0,1,-2,2,-1,-2,2,-2,0,1,-1,0,1,-1,0,0,-2,-1,1,-1,0,1,0,1,0,-2,-2,0,0,0,0,0,1,0,2,0,1,0,0,0,-3,-2,0,2,0,-1,0,0,-1,-4,-2,-1,2,0,0,-1,0,0,-3,-1,0,1,0,-2,2,0,-1,1,2,1,2,0,-2,3,2,-1,1,4,3,2,0,-1,2,0,-1,-1,-2,-1,0,-1,-1,0,-1,-2,0,1,0,1,-1,0,0,0,-2,0,1,-4,-2,-2,0,-1,-1,-2,-2,1,-3,-1,1,2,-2,-4,-2,-3,-3,-1,0,-1,-1,-1,0,-2,-3,3,-1,2,0,-1,1,0,0,-3,-2,-2,2,-1,0,0,0,-1,-3,-1,-1,1,0,-1,-1,0,-1,-4,-2,-2,0,2,2,-2,-3,-2,-4,-2,-1,2,0,0,0,0,-1,-3,-2,-1,-3,-1,2,-2,-3,-3,-4,-2,0,5,0,-2,4,1,0,5,3,1,0,-3,-1,0,-1,-3,0,1,-3,1,0,-2,1,1,0,0,0,0,1,1,1,1,-2,-3,-1,-2,-4,2,3,0,0,-4,-2,-2,-5,-4,2,1,-2,2,1,0,0,-1,0,2,0,0,1,0,0,-2,-2,-1,2,-1,-3,1,1,0,-1,2,2,2,1,1,0,-1,0,-4,-3,-2,1,0,-1,-1,0,-2,-3,1,-2,2,1,-2,1,0,-1,0,-1,-1,2,3,1,1,-2,-2,1,-3,-4,2,2,-1,1,1,0,-2,-1,-1,2,1,-1,2,1,0,0,-1,-1,1,1,0,1,0,0,-2,-2,-1,0,0,1,0,0,1,0,-1,0,0,0,0,-1,0,0,0,-2,-1,1,1,1,0,0,0,0,-1,0,-2,0,0,-2,-1,0,-2,-1,0,-1,-1,-1,0,-1,1,1,0,1,0,0,0,0,0,1,0,-1,0,-2,0,-1,-1,-2,-2,-2,-1,-2,0,-1,-1,-2,-1,-2,-2,-2,-3,-2,-2,0,-2,-1,-2,-2,-1,-2,-4,-1,0,-2,-1,-3,-1,-1,-1,-2,-1,-2,-2,-2,-2,-3,-3,-3,1,0,0,0,-1,0,-1,-1,-1,0,-1,1,0,-1,-1,0,-2,-2,0,-1,0,0,-1,0,-1,-2,-1,-2,-1,0,-1,-1,-2,0,1,0,0,0,0,0,1,0,-1,-1,-1,-2,-3,0,-1,0,0,1,0,2,0,0,0,0,2,2,1,2,2,-1,-1,-1,-3,-2,-3,-3,-2,-3,1,1,0,1,0,1,0,1,1,-1,-1,-2,-3,-1,-3,-3,0,-2,0,0,0,-1,-1,-2,-2,0,-2,1,1,0,1,1,1,1,0,1,0,0,1,0,0,-1,0,0,0,-1,-1,-1,1,0,1,0,-1,0,1,1,1,1,0,0,-1,-1,-1,-1,-2,-1,-2,-1,-2,-2,-2,-3,2,2,1,0,1,0,0,0,0,0,0,-1,-2,-1,-2,-2,0,-1,1,1,1,1,0,0,1,0,0,0,0,1,0,0,1,1,1,0,1,1,1,1,-1,0,0,0,0,0,-1,0,0,0,1,0,0,0,0,0,1,0,0,1,-1,0,2,0,0,0,0,0,0,0,0,0,-2,-1,0,-1,-1,-1,0,0,0,-3,-2,0,0,-2,-1,3,1,0,-1,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,1,1,2,1,0,0,1,1,-1,0,0,3,-1,1,0,-1,-3,-3,-4,-2,0,0,-2,1,0,-2,2,0,-2,1,1,0,-1,-1,1,0,0,1,0,0,0,0,2,1,-1,0,1,0,1,1,2,0,1,0,0,4,1,1,1,1,0,2,0,-1,1,0,-3,-2,0,-1,-4,2,-3,-4,0,-1,1,0,1,0,0,0,1,2,1,-1,3,1,-2,2,-2,-1,1,0,-1,0,-3,-1,2,-1,-6,2,1,0,-1,2,0,-2,0,1,-2,1,0,-1,0,0,1,0,0,-3,-2,-2,-1,-1,-1,-2,-1,1,0,-1,-2,0,1,0,-1,0,1,-1,0,1,0,0,1,2,0,0,-1,0,0,1,1,0,-1,0,0,-1,-1,0,0,-2,2,3,0,2,-1,0,0,1,0,0,-1,0,1,0,1,0,1,0,-1,0,1,1,-1,0,1,0,0,1,0,0,0,-2,0,-2,1,1,0,-1,2,1,-1,0,1,0,0,0,0,-1,0,-1,1,0,-1,1,0,0,2,0,-1,1,-1,1,0,0,0,0,0,-1,0,0,0,-1,0,0,0,0,1,0,1,1,-1,1,0,-1,0,-1,1,0,1,0,0,0,-1,1,-2,-1,0,-1,-2,-2,0,-2,-2,-2,-3,0,-2,-2,-1,1,-1,-1,0,0,2,0,-1,0,0,0,0,0,2,0,0,-2,0,0,0,0,2,3,2,2,-1,-1,0,0,2,1,1,-3,-1,-3,0,-2,-1,0,0,3,1,0,-4,0,-1,0,0,2,1,0,0,-2,1,-1,-2,0,1,0,0,0,0,1,0,0,0,2,-1,1,1,0,2,0,0,1,2,0,0,1,-1,1,0,0,1,2,3,0,-1,-3,1,0,-1,0,1,0,0,0,-1,0,0,-1,1,0,2,-1,1,-2,0,0,-1,1,-1,-2,0,-3,-2,-3,1,0,1,0,2,-2,0,0,0,-1,-1,-1,0,0,0,0,0,-1,1,1,0,-2,0,2,-1,0,-1,-1,-1,-3,1,1,3,0,0,3,0,-1,0,0,0,-1,0,0,-1,2,0,1,-1,0,0,0,0,0,1,0,1,0,-2,1,-1,-2,0,0,-1,0,0,-1,0,1,0,1,1,0,1,1,2,0,0,-2,0,0,0,0,0,-1,1,-1,0,0,0,0,0,0,1,3,-2,0,2,2,-1,0,-1,0,0,0,-1,0,1,0,0,0,0,0,0,0,1,1,1,0,-1,-1,-1,0,-1,0,1,0,0,-1,1,0,-1,0,-1,0,0,0,-1,0,-1,1,0,-1,0,0,-2,-1,0,0,-1,1,0,0,1,-1,1,-1,0,1,-1,2,-1,-1,3,1,-1,-1,1,-2,1,0,0,1,-1,1,-1,0,1,0,0,1,0,0,-2,0,1,0,2,0,-2,4,0,-2,1,1,-2,3,1,0,3,1,-3,-3,0,0,-2,1,-2,-2,-2,0,3,-3,-2,2,0,-3,1,1,-2,-1,1,1,0,1,0,1,0,0,0,0,0,-1,0,0,0,-1,0,-1,1,1,0,1,0,-1,1,1,-1,0,0,0,0,0,-1,-1,0,1,-3,-1,1,1,-3,1,0,0,-1,0,0,-1,0,1,-1,0,-3,-2,0,-2,-1,2,-2,-4,-3,-1,-2,-4,-2,-2,0,2,2,0,-2,2,0,0,5,0,0,3,0,1,-1,0,0,0,0,0,0,-3,-1,2,-2,1,3,0,-1,3,-4,1,0,-2,2,3,0,1,2,-1,1,-1,0,0,-1,0,1,1,-1,0,0,0,0,0,-1,0,0,1,-1,0,1,-1,0,0,-1,0,-1,0,0,0,0,0,1,0,-1,0,-1,-2,2,0,1,1,-1,1,-1,0,0,0,0,0,0,0,0,-5,1,2,-1,2,3,-1,0,2,-1,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,1,0,0,1,0,0,0,-1,0,0,0,0,-1,0,1,1,-1,0,0,0,0,0,2,1,0,1,0,-1,0,0,-1,1,1,0,0,0,0,0,0,0,3,0,-2,1,-1,0,-1,-4,-2,2,0,-1,1,0,1,-1,-4,-2,0,0,0,0,0,0,-1,-1,0,4,0,-3,0,-2,-2,0,-3,-1,4,-1,-2,2,0,-2,0,-3,0,4,-2,-3,2,-2,-2,1,-3,-1,-1,0,0,1,-5,-1,-1,-3,0,4,0,-2,2,-1,-2,1,-4,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,-1,-1,1,0,0,2,1,0,2,-1,-1,0,-1,-1,0,0,0,1,-3,-1,-2,-2,0,1,0,0,1,0,0,-1,0,0,2,0,-2,3,-1,-2,3,-2,-2,1,-1,-1,-1,-1,2,-7,-5,-2,3,-2,-4,2,0,-2,-1,-3,-1,-1,1,0,-1,0,0,0,-1,0,-1,-3,0,-3,-5,1,-4,-3,2,-2,-4,0,-2,-2,0,-3,0,1,0,1,1,-1,-1,1,-1,-1,-1,-1,0,0,0,-1,1,0,0,0,3,1,-1,1,-1,-1,0,-3,-2,0,1,0,-1,0,0,0,0,0,4,1,-2,2,-2,-3,1,-2,0,-1,0,1,-1,-1,1,-1,0,0,-1,-2,0,-4,-3,0,-3,-2,0,0,1,1,0,0,0,0,0,-1,1,1,0,-1,-1,0,-1,-1,1,-1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,-1,0,1,0,0,0,0,0,1,0,0,1,1,0,-1,0,0,1,0,1,-1,-1,-1,-2,-3,0,-2,-1,-2,0,-1,-2,-1,-2,-1,-1,-2,-1,1,1,-1,0,1,-1,-1,0,0,0,1,2,-2,0,0,-2,0,0,2,-1,-2,0,0,-1,0,0,-1,-1,0,2,-2,-2,-1,-2,-1,0,0,3,4,-2,-3,-1,1,-1,0,1,-1,-2,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,-1,0,0,0,-1,1,1,0,0,0,0,0,0,1,-1,2,3,-2,-3,-1,1,-1,-1,0,0,0,0,0,0,0,0,1,-2,0,3,-1,-2,-4,1,-1,-1,0,-1,-1,-2,-3,-1,-1,-3,-3,-1,0,-1,0,-1,-1,0,1,-1,0,1,-1,-1,0,0,0,-1,0,-2,0,1,-2,-1,0,-1,0,0,1,3,2,-2,-1,0,-1,1,-1,0,0,-2,-1,-1,0,0,-1,0,0,1,1,0,0,0,1,0,0,1,0,-1,1,-1,0,-1,-1,0,1,1,0,0,0,0,1,0,0,2,0,1,0,0,0,-1,0,1,1,0,-1,-1,0,0,0,0,0,0,2,2,-2,-1,0,-1,0,-1,1,1,0,0,0,0,0,0,0,1,1,0,0,-1,1,0,0,-1,0,0,0,-1,0,0,0,0,0,-3,-2,-1,1,0,-1,1,1,-1,-3,1,-1,1,0,-1,1,-1,-1,-3,-2,0,0,1,0,0,0,0,1,-4,2,0,-1,1,0,0,2,0,-5,-2,-1,-1,0,-1,-1,0,-2,0,-2,-1,1,0,0,1,-1,1,-1,1,1,1,2,0,-1,2,-2,-4,3,3,1,1,1,-1,2,2,2,3,1,0,-1,-1,-1,-1,-1,-1,1,3,2,-1,1,0,-1,1,-1,0,0,0,0,-1,-1,0,-1,1,0,0,0,0,1,0,0,1,2,1,1,0,0,1,-1,0,-3,0,1,2,1,-2,0,-1,-2,-3,1,2,3,2,-2,1,0,-2,-3,0,0,1,0,-1,0,0,-1,0,2,2,3,1,-3,-1,-3,-4,-3,-2,2,-3,1,1,-1,0,0,0,0,4,2,-1,1,0,0,2,-2,-1,-3,-2,1,0,1,0,-1,-3,-2,0,-1,0,2,3,2,2,-3,-1,1,1,1,2,3,1,2,-2,-2,-1,-1,1,1,0,0,-1,-1,0,-1,0,1,0,0,1,0,-2,-4,-3,0,0,0,1,0,-1,-2,0,-1,0,0,-1,1,0,0,0,-1,1,1,1,2,0,-1,0,-1,-1,-3,-1,1,1,1,0,-1,-4,-1,1,-2,0,2,2,1,2,-3,-1,-2,-1,1,-1,1,0,-1,0,-1,-1,-1,0,1,0,-1,0,0,1,-1,-1,0,0,1,0,-1,0,0,-1,-1,1,1,0,1,0,1,0,0,1,0,0,0,1,-1,0,0,-1,0,1,1,0,1,0,1,-1,-3,-1,-1,-2,-3,-1,-1,0,-1,-3,0,1,-2,-2,-1,0,0,1,-1,-1,0,0,0,0,0,0,0,-1,-1,0,-2,-1,0,-3,2,-2,-3,0,0,1,-1,1,-1,-1,-2,0,-1,-1,-3,-1,-1,-1,-2,-1,2,0,-2,-1,2,0,-2,1,0,-2,0,1,-2,-1,-1,-1,0,0,1,1,0,1,1,0,0,0,0,0,1,1,-1,1,0,-1,0,0,0,1,1,0,1,0,-1,-1,-2,3,0,-1,-1,2,-1,-3,0,-1,0,1,1,0,0,0,0,-1,-2,0,2,0,-2,2,-1,-1,-1,-1,-1,0,-1,0,-1,1,1,1,-1,-2,0,0,-1,0,0,-2,0,1,0,0,0,0,0,1,1,-2,-2,1,-1,-1,0,-3,-1,-1,-1,-1,0,0,-1,0,0,0,-1,-1,0,-1,0,-1,0,1,1,2,0,0,1,0,0,0,0,1,0,2,0,-2,1,2,-1,-1,0,0,-1,0,0,1,1,1,0,0,0,0,0,-1,0,1,-1,0,0,-3,0,1,0,0,1,0,0,1,0,-3,-1,1,-1,-1,0,-1,0,-1,0,1,-1,-1,0,0,1,1,1,-1,1,0,0,0,1,1,1,1,-1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,-1,0,0,1,0,-1,0,0,-2,-1,0,1,0,0,0,0,0,-1,-1,-1,1,-2,-2,-1,-1,-2,-1,0,-1,0,-1,-1,-1,0,0,0,0,1,1,0,0,-1,-1,0,0,-1,0,2,0,-1,-1,-1,-1,-1,-2,2,1,1,-1,0,-1,-2,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,0,-1,2,2,1,0,1,1,2,2,1,0,0,-2,-1,-1,-2,-3,-3,1,1,0,1,0,0,0,-1,-1,1,0,1,0,0,-1,1,-1,-1,1,1,2,0,-1,1,0,-1,-1,0,1,1,0,1,0,2,2,2,1,1,1,0,0,0,-1,0,-1,-1,0,1,1,1,0,3,2,4,-1,2,2,-1,2,2,2,4,4,0,2,-1,-2,0,-2,-1,-1,-2,2,1,1,0,0,1,0,1,1,-1,-2,-1,-2,-2,-2,-1,1,-2,1,-1,0,-1,-1,-2,0,1,-2,0,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,-1,0,0,1,0,-1,0,1,0,-1,1,1,0,-1,0,0,-1,-1,-1,1,1,2,0,0,1,0,0,0,2,1,-1,-1,-2,-1,-1,0,-2,0,0,0,0,0,0,0,-1,-1,0,0,1,0,-1,1,0,1,0,0,1,1,0,0,0,0,0,0,1,1,1,0,-2,-1,-1,-1,0,1,0,-1,-1,-2,0,-1,-2,1,1,1,0,-1,-1,0,-1,-1,1,1,0,1,-1,0,1,-2,0,1,3,2,1,-1,0,1,-2,-1,2,2,1,1,-1,-1,-2,0,-3,-1,1,0,1,-2,-2,0,-1,-1,2,0,0,0,-3,-1,0,-2,-1,1,-1,0,0,1,1,2,-2,0,5,-1,0,1,-2,0,0,0,1,2,-1,-1,0,-1,0,1,-2,-1,3,0,0,0,-1,-1,-1,-1,-1,1,0,0,-1,-1,-2,0,-1,-2,0,1,0,0,-1,-2,-1,1,-1,1,-1,-1,1,-1,0,0,0,1,1,1,0,0,0,-1,-1,-2,-1,0,-1,0,0,2,2,2,0,2,3,2,5,2,0,2,-3,-4,-2,-2,-1,-1,1,-1,0,1,-2,-1,1,1,3,2,0,-1,-1,-1,-2,-1,-2,0,2,1,1,0,1,0,-1,-2,1,0,0,1,-3,1,0,-2,2,3,1,0,-1,-2,-1,-2,-1,0,0,0,0,-1,-1,-1,-1,-1,2,1,1,-1,-2,1,0,-2,1,0,0,0,-1,-1,-1,-1,-1,0,1,1,0,-2,-1,1,-1,0,2,1,2,0,0,-1,-1,-1,-2,-1,-1,1,3,0,1,0,1,1,-1,1,1,0,-1,-1,-1,0,-1,0,0,1,2,-1,-1,-1,0,-2,0,0,0,0,-1,0,-1,0,-2,0,-2,-2,-6,-1,-1,-1,1,0,0,-2,-3,-6,-1,-1,0,0,0,2,-1,-3,-4,-1,-1,0,0,0,2,0,-1,0,-2,-3,0,0,-3,2,-1,0,-2,-2,-3,0,-1,-3,2,-1,0,-5,-2,-3,-2,0,0,1,-1,-4,-1,-1,-2,1,0,-1,4,0,-2,-3,2,-3,0,2,0,2,-1,-2,0,-1,1,4,1,0,4,-2,-2,1,1,1,3,3,2,2,-2,-3,-2,-2,-2,1,0,-2,2,-1,-3,-3,-1,-1,1,1,0,2,-3,-3,-2,-1,-1,0,1,0,1,-2,-4,-6,-1,0,1,1,0,2,-2,-1,-1,1,1,3,3,1,2,-1,-3,-6,-1,-2,0,0,0,2,0,-1,0,3,2,4,4,2,4,2,6,1,-1,-4,-3,0,1,3,-1,-2,0,3,-1,1,3,-1,3,-1,1,-3,-2,-4,-4,0,0,1,0,2,0,1,-2,-3,0,-1,-1,0,0,-5,1,-1,0,1,0,1,0,0,-5,-1,-4,-3,1,1,2,-2,-1,-2,0,-1,-1,1,0,0,-2,-3,-4,-2,-4,-1,0,-2,1,-2,-2,-2,0,0,0,1,0,1,-1,-4,-1,-2,-2,2,0,-1,3,-1,0,-2,-1,-2,-2,1,0,0,-1,2,-2,0,-1,-2,2,-1,0,-1,-1,-4,-1,-2,-2,1,1,1,-1,1,-1,-1,-2,-2,1,0,1,-2,-2,-1,-1,-1,0,1,0,1,1,1,1,1,0,0,-1,-2,-1,0,1,0,0,-1,0,-3,-2,0,1,1,0,1,0,0,-2,-2,0,-1,-1,0,1,0,0,3,4,2,-1,0,-1,1,1,0,3,4,3,0,1,1,1,1,0,0,-1,0,1,1,0,0,0,-1,-1,1,2,-1,0,-1,-1,-2,-1,-1,1,-1,-1,-1,-1,0,-3,-1,-4,-1,2,1,0,1,1,-3,-4,-2,-2,-2,-1,-2,-1,-2,-1,-2,-6,2,2,1,1,0,0,-1,-1,-2,-2,-1,-1,0,0,-1,0,-1,-3,-2,3,1,1,1,0,-1,0,-3,-3,-1,1,-1,0,1,-3,-4,-3,-2,-2,2,1,0,1,0,0,-2,-1,-1,0,0,-1,2,-3,-3,-2,0,3,2,1,0,3,3,-1,5,7,-2,-2,-1,-2,-1,-2,-1,0,2,0,1,1,1,0,0,0,1,1,-1,-3,-1,-1,0,1,-1,-1,1,0,0,2,0,-1,1,-2,-2,1,-3,0,0,0,2,1,0,1,1,0,1,1,1,0,1,0,-1,-2,-1,-2,-1,-1,0,0,0,0,2,4,1,1,1,0,0,-1,-3,-3,1,0,0,-1,0,-1,-2,-3,0,2,1,1,0,0,0,-1,0,-1,-1,-2,-1,0,0,0,-2,0,2,-1,0,2,1,0,0,0,-1,-2,-1,1,1,2,0,0,0,0,0,1,1,1,1,1,0,-1,-2,-2,-1,1,0,-2,1,0,-2,1,-1,-1,0,-1,-1,1,0,-1,1,0,0,1,-2,-2,2,-1,-1,1,-1,0,-1,1,2,-1,1,1,-1,1,0,-3,-1,3,-1,-1,1,0,-2,0,0,0,-3,1,0,-1,1,0,0,0,-2,-1,2,0,0,1,-1,0,0,1,0,0,0,-1,0,1,-1,0,-1,2,1,0,1,1,-1,1,1,2,3,0,1,2,-1,-1,1,0,-2,-1,0,-1,0,1,-1,0,1,-1,-2,1,0,-1,1,0,0,0,0,-1,1,0,-1,1,0,0,0,0,-2,1,0,-1,2,0,0,1,3,3,-2,1,1,-1,-1,1,1,-1,-3,1,-1,-1,1,0,0,0,1,4,0,1,3,0,-1,1,2,3,3,0,-1,1,-1,-2,0,-1,-1,1,0,-1,0,0,0,0,1,0,-3,0,0,-1,1,0,-1,0,1,0,2,0,0,2,0,-1,1,3,-1,0,1,-1,2,-1,-1,1,1,-3,2,0,-1,1,0,-2,1,0,-1,1,0,-1,1,1,-1,-1,-1,-1,1,0,0,1,-1,-1,1,1,-1,1,1,-1,1,1,-1,0,-2,0,0,-1,-1,2,-1,0,1,0,-2,1,1,-1,1,1,-1,-1,3,-1,0,0,-2,0,0,-2,1,0,-2,1,0,-2,1,0,-1,1,1,-2,2,0,-2,1,0,-1,1,0,-2,1,0,-1,1,1,0,-1,0,0,-1,1,1,-1,-1,0,0,2,1,0,1,0,0,0,-1,0,0,0,0,1,0,0,0,0,-3,-1,-1,0,0,2,-2,0,1,-4,-1,0,1,1,2,-2,0,0,-1,1,1,0,0,1,0,1,1,1,0,-1,1,1,-1,-1,-1,0,3,3,-3,0,1,1,0,0,1,3,0,-2,0,-2,-2,-2,-3,-2,1,-2,-3,0,-1,-3,0,0,-2,3,2,0,1,1,1,-1,-1,0,0,1,0,0,1,0,0,0,0,1,1,0,2,0,-1,-1,-1,0,1,2,0,1,1,0,0,0,-1,2,-4,-3,-1,-1,-2,-1,-1,-2,0,0,0,0,1,0,0,0,0,3,1,-3,1,0,-3,1,-2,-4,-1,-3,-2,1,-3,-1,-2,-4,-3,2,1,-2,1,2,0,-1,0,1,-3,0,0,0,-1,1,0,1,0,0,-1,-1,0,-1,0,-2,-2,0,1,-2,0,0,0,2,0,-1,2,-1,0,0,-1,1,1,0,0,0,-2,0,1,0,0,0,-1,0,1,-1,1,1,2,1,1,0,0,0,-1,1,1,1,1,0,-1,0,0,0,2,-1,2,-1,1,-1,0,0,-2,0,1,0,0,1,0,0,1,0,-2,0,2,0,1,0,-1,1,-2,0,0,0,0,1,0,1,1,-1,1,0,0,0,0,1,0,0,-2,0,0,0,0,0,0,0,0,-2,0,0,-1,1,1,1,1,1,0,0,-1,0,1,1,0,1,-1,-1,0,0,-1,0,1,0,1,1,1,-1,-2,0,-1,-1,0,-1,1,0,-2,-4,0,-1,-3,-1,0,2,0,0,0,-1,0,1,0,2,1,2,0,-1,1,-1,-2,0,-1,-2,0,-1,-4,1,0,0,1,0,0,1,0,2,2,0,1,1,-1,-4,-3,-4,-1,0,-3,-3,2,0,-2,0,0,-2,1,0,0,-1,-1,-3,-1,0,0,0,0,2,0,0,0,0,1,0,0,1,0,1,0,-1,-1,0,0,1,1,1,1,0,-1,-5,-5,-2,0,-3,-2,3,0,-2,-1,-1,0,-1,1,1,0,0,0,-1,-3,-1,1,0,-1,4,2,-3,-3,-3,-3,-2,-1,0,1,2,2,1,-1,-3,1,-1,0,1,-1,-3,-1,0,0,-1,0,1,1,1,2,-4,-4,-2,-4,-4,-2,-5,-4,0,-4,-4,-1,-3,-4,1,-3,-2,1,-2,-1,-1,-1,0,1,1,2,3,-1,0,0,-1,0,1,0,1,1,1,-1,-4,0,-1,-2,-1,0,2,-1,-1,0,0,1,1,0,0,1,1,0,-1,1,1,0,0,-1,-1,-1,0,0,-1,0,1,-1,1,1,-3,-5,-2,-3,-2,-1,-3,-3,1,-1,0,0,0,1,1,0,1,1,-1,-1,0,-1,0,1,1,1,2,-1,0,0,-1,0,1,0,1,1,-2,-1,1,0,-2,0,1,-1,-1,-2,1,1,-1,-1,0,-1,-2,0,-2,0,1,-1,-2,0,1,-1,-1,1,3,1,-2,1,1,0,0,-1,-1,3,2,-4,1,2,-1,0,1,-2,0,1,-1,-2,0,1,-2,0,-1,1,0,-2,0,0,-1,0,0,4,2,-2,2,1,-2,1,2,1,-1,1,0,0,1,0,-2,0,2,1,-5,-3,4,-1,-4,3,2,-1,0,3,1,-3,1,0,-2,0,2,0,-1,-1,-1,-2,-1,1,-1,0,-3,-1,0,1,-2,0,1,-2,-1,-1,0,1,-1,-1,-1,0,-1,1,1,-6,-3,4,0,-3,3,2,-1,-1,0,1,-1,-1,0,0,-2,0,2,-2,-1,4,1,-2,1,1,1,0,3,1,0,1,0,-1,-1,-1,4,1,-2,2,0,-1,2,1,-1,-2,0,1,-2,-1,0,0,-2,-1,1,-4,1,5,-1,2,3,2,2,1,-5,0,3,0,0,3,2,2,-2,1,1,-1,-1,0,0,-1,0,-1,-1,1,0,-2,0,1,-1,0,-2,2,1,-4,-1,1,-1,-2,0,-2,-2,0,1,-2,-1,2,-1,-1,-2,1,0,-2,0,0,-1,0,1,-2,-1,1,-1,-1,1,1,0,-1,-2,-3,1,3,-2,1,5,1,3,-3,0,1,-1,-2,0,1,-2,0,-2,-1,0,0,-2,0,0,-1,-2,-2,-2,0,0,-2,-1,1,-1,-1,-1,0,0,0,-1,0,0,0,0,1,-1,0,1,0,1,0,0,1,0,0,0,-1,1,1,0,0,0,0,-1,-1,-1,0,0,0,-1,1,-1,-2,1,0,-1,1,1,-1,1,0,0,1,1,0,2,1,0,1,2,1,0,0,1,1,-1,0,1,4,1,-2,1,1,2,1,1,1,3,-2,-2,0,-1,-1,0,-2,-2,0,1,-1,0,0,-1,0,0,-3,3,-1,1,1,1,2,0,-1,2,0,0,-1,1,1,0,1,0,0,2,0,0,3,0,1,2,0,1,2,1,0,2,0,1,1,0,1,1,-2,-1,0,-1,-2,1,-1,-3,0,-1,0,0,0,1,0,0,0,3,-1,-1,1,0,-2,2,-1,-3,-1,-1,-2,-1,-5,-3,1,-3,-6,2,0,-1,0,3,2,0,1,2,0,0,0,0,-1,-1,0,0,0,-2,-1,-1,0,0,1,-1,-1,0,0,0,-1,2,0,2,2,1,2,0,0,0,0,-1,0,1,0,0,-1,-1,1,0,0,1,0,0,0,1,-1,2,0,-1,2,1,0,1,-1,-1,0,1,0,1,1,0,0,1,1,0,1,0,1,-1,0,2,0,-1,0,0,0,0,0,-1,0,-1,0,0,1,1,2,1,1,2,0,-1,0,0,-1,0,0,0,0,-1,1,0,-1,0,0,1,1,0,-2,0,0,0,0,0,0,0,-1,1,1,1,1,1,0,0,0,1,1,0,0,1,-1,0,0,0,0,1,0,0,0,0,0,0,-1,0,-1,0,0,-3,-2,0,-2,-1,-2,0,-1,0,0,-1,0,-1,-1,0,1,0,0,0,0,0,1,0,-1,-1,0,0,-1,-1,-1,-2,-1,-1,0,-1,-1,-2,0,-1,-1,-1,-1,-2,-2,-1,-3,-2,-2,-2,-1,0,-2,-2,-3,-3,-2,-2,0,0,0,1,-1,0,0,-1,-1,-1,-2,-1,0,0,1,0,0,0,1,0,0,0,-1,0,0,-1,-1,0,0,0,1,0,-1,0,-2,0,0,-1,0,-2,-2,-3,-2,-1,-1,0,0,1,0,0,1,0,0,0,1,0,0,-3,-3,-1,-2,-1,0,1,0,0,1,-1,0,-1,1,1,-2,0,-1,-1,0,-1,-2,-2,-3,-1,-1,-2,1,1,1,0,0,0,0,0,1,1,-1,-2,-2,-1,-2,1,-1,-2,1,-1,-2,0,-2,-2,1,-2,-1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,1,0,0,0,0,0,0,0,0,0,-1,1,0,-1,0,-1,0,0,2,1,1,0,-1,1,1,0,0,1,-1,-2,0,-1,-1,1,0,-2,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,-1,0,0,0,1,0,0,1,1,1,1,0,-1,1,-1,-2,1,0,-1,0,1,-1,-1,0,-2,-1,-1,-1,1,0,-2,0,-2,-1,0,-1,-1,-2,1,1,-1,0,-2,-1,1,-1,-3,0,2,-2,-1,-2,-1,2,0,1,1,1,0,0,-1,0,0,-1,0,1,-1,0,1,-1,-2,1,-1,0,2,0,0,0,-1,-2,1,-1,0,0,-2,-1,0,1,-2,-1,2,-2,0,0,-1,1,2,1,2,1,-2,-2,-2,-2,-1,-3,-4,-1,-2,1,0,-2,1,0,-1,1,0,-1,0,2,0,0,1,1,-1,0,-1,1,1,-1,0,0,-1,0,0,0,-2,-1,0,-1,2,3,2,2,1,1,1,-1,0,0,-2,0,-1,0,0,0,0,-1,2,5,0,2,4,2,6,5,1,3,0,3,3,3,-2,1,0,-1,1,-1,-2,0,-2,1,1,2,1,0,-2,0,-1,-1,-2,1,2,0,2,-2,2,1,-4,0,1,1,0,1,-1,2,1,-1,0,2,1,0,1,-1,1,0,-1,1,0,-1,1,0,-2,0,0,-1,-1,-1,1,-2,-1,-2,-2,0,-1,1,0,-1,1,0,0,0,0,-1,0,-1,-2,-1,-1,-1,-3,-1,-1,0,1,1,1,1,-1,0,0,-1,-2,1,4,0,1,-1,1,0,-2,1,0,0,0,0,-1,1,-1,-2,1,1,2,1,1,-1,0,1,-2,1,1,0,1,0,-2,1,-1,-1,-1,-2,-1,0,0,0,1,0,1,-2,0,0,0,0,0,0,0,1,-2,-2,-1,0,0,0,1,1,1,-2,-2,-2,-1,-1,-2,0,-3,-2,-2,-3,-3,-2,-1,-1,-1,-1,0,-1,-2,-1,-1,1,1,0,1,0,-1,-1,1,-1,0,-1,0,-1,0,-1,-2,2,0,1,0,-1,0,-1,2,2,4,1,0,-1,2,1,-1,3,3,3,1,3,1,1,1,-1,-3,-1,0,-1,-1,-1,0,-1,-1,-1,0,0,0,-1,1,1,0,0,1,1,0,0,0,0,1,0,1,-2,0,1,0,0,1,1,1,1,2,4,4,2,1,0,0,1,-1,-2,-1,0,0,-1,1,0,0,1,3,4,5,2,2,1,2,2,2,0,0,1,2,2,2,3,2,0,0,1,1,-1,-1,-1,0,-1,-1,-1,-3,-3,0,1,1,1,0,1,2,0,-3,-2,-2,-3,-3,-2,-1,2,0,-1,0,0,-1,-1,-1,-1,-1,-3,-1,0,0,0,1,1,1,0,-1,-1,0,0,0,0,1,1,-3,-2,-2,-2,-1,0,0,0,1,0,1,0,0,0,0,1,1,1,-1,0,1,0,0,1,0,-1,-1,0,-2,-2,0,1,1,0,1,1,3,1,-5,-1,-1,-2,-2,-2,-1,-1,-2,-1,-1,1,0,1,0,0,1,-1,-2,0,1,0,1,0,1,1,0,-1,0,0,1,1,0,1,-1,1,0,0,1,1,1,1,1,1,-1,-2,1,1,-1,1,1,0,0,0,-1,0,1,0,1,1,1,0,-3,-3,-2,-2,-3,-3,-1,-2,0,-3,-4,-1,-2,-4,-2,0,-1,-1,0,-1,0,0,-2,0,1,0,-1,-1,-2,-1,-1,-2,-1,1,0,-1,-2,-2,-1,-2,-3,-2,0,-2,0,-1,-1,-2,0,-1,-2,-1,-1,-3,-3,-1,0,-1,1,1,0,1,0,-2,-3,-1,0,-2,-1,0,-3,-1,-1,0,1,0,0,0,1,1,0,0,-2,0,1,-1,1,1,0,0,0,-1,1,1,0,1,1,0,-3,-2,-1,1,0,2,1,0,1,0,0,-1,0,1,0,1,2,1,-2,-2,-3,0,0,0,0,0,0,-3,-2,-2,-3,-1,-1,-1,0,-1,-1,-2,-1,-2,-1,-1,-2,1,-1,-1,0,-1,0,-1,0,1,1,1,-1,-1,1,-3,-1,0,-2,0,0,-3,0,0,-3,1,0,-2,1,0,-1,-1,-1,-1,0,-1,1,2,2,0,0,0,0,0,0,1,1,1,0,-2,-3,0,0,-3,0,1,0,-1,0,0,1,1,1,1,1,1,0,-1,-2,-1,0,-2,-1,0,-1,-1,0,0,-1,0,0,1,1,1,-4,0,-1,-4,1,0,-2,1,0,0,0,0,0,1,0,2,2,1,-1,-1,0,-1,0,0,0,0,1,0,0,0,1,1,0,1,1,2,2,0,1,1,-2,0,0,-1,-1,1,-1,2,0,-1,1,0,-2,0,0,0,1,-1,0,-1,-1,-1,0,-1,1,2,-1,1,1,-2,1,1,-1,0,2,-1,0,2,-2,0,1,1,0,1,1,-1,1,0,-1,0,0,2,0,-1,0,-1,-2,0,1,-1,2,2,-1,1,1,-3,0,1,1,0,-2,-1,-1,-2,-1,-1,-1,1,-1,-4,-3,-4,-5,-3,-3,-3,-1,2,1,0,0,0,-1,0,2,0,0,1,-1,-1,0,-1,-1,0,1,-2,1,-2,-3,1,-1,-2,1,1,-1,0,0,-3,-1,-1,-2,-1,0,-2,-3,-2,-4,-3,-4,-3,-3,1,0,1,0,0,0,0,-1,0,-1,-2,-4,-4,-6,-4,-3,-5,-3,1,0,-2,-1,-1,0,-2,-2,-1,-2,1,1,-2,1,1,-3,1,0,0,-1,0,-1,-1,0,0,-1,0,2,0,1,2,-1,1,1,0,1,3,0,1,2,-1,0,0,0,1,2,0,0,0,-1,0,0,-2,-1,1,0,0,0,-1,0,1,-1,0,-1,-1,2,-3,0,1,-1,-1,1,1,0,1,0,-2,0,0,-2,-1,0,2,0,-1,0,0,-2,0,2,1,-1,1,0,-1,1,0,-2,-1,3,0,3,1,0,2,1,-1,2,1,-1,0,1,0,0,1,-2,-1,2,0,0,1,0,0,1,-1,0,0,0,0,0,-1,0,1,-1,0,0,-2,-2,0,0,-1,1,1,1,-1,-1,-1,0,0,0,2,0,0,-2,-1,-2,0,0,-1,0,1,0,0,-1,-2,0,1,-1,0,1,-1,1,1,-2,0,2,-1,2,1,0,0,-1,-1,0,-1,-1,2,1,0,-1,0,-1,0,0,-1,0,2,1,1,1,-2,0,1,0,-1,2,-1,-2,-3,-1,-1,0,0,-1,0,2,2,-1,-2,4,2,1,0,0,1,0,0,-1,0,0,1,1,1,1,0,-1,-1,0,0,0,0,1,1,0,-2,-2,2,0,0,2,1,1,0,-2,-2,1,0,0,2,1,1,2,-1,-2,4,2,1,-1,0,2,-1,-1,-2,-1,-1,0,1,1,1,2,-1,-1,3,1,2,0,0,1,-1,-2,-4,0,-2,2,-1,-1,1,0,1,-2,-1,1,0,0,3,0,-2,-2,-1,0,-2,0,1,0,0,3,-2,-3,2,-1,1,0,-1,3,2,-1,-4,2,0,1,1,0,2,0,-2,-1,1,-1,0,1,-1,0,0,-2,-1,1,-1,-1,0,0,1,1,1,-1,2,1,0,2,1,0,-1,-2,-1,1,0,-1,1,0,1,-1,-1,-2,-1,1,0,1,1,1,0,-2,-2,0,-2,0,1,1,0,2,-2,-4,2,0,-1,2,0,2,0,-2,-2,0,-1,-1,1,0,0,-1,-2,-1,1,-1,-1,1,0,0,0,-2,-2,0,0,-1,1,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,-1,1,0,0,0,1,0,0,0,0,1,0,-1,2,1,0,-1,-1,-1,-1,-1,-1,0,1,0,-1,-2,-1,-1,-2,-2,-1,1,0,-1,0,0,0,0,0,1,1,0,0,-1,-1,-1,-1,-1,2,0,-1,1,0,0,0,0,0,0,-1,0,1,0,-1,-1,-1,-1,0,0,2,1,0,0,1,0,-1,1,0,0,1,-1,0,0,0,-1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,-1,0,-1,-1,-2,0,1,0,0,0,0,-1,-1,0,0,0,0,-1,-1,0,0,0,0,-1,0,1,0,-1,0,-1,-1,0,1,2,-4,-1,0,-2,-1,-1,1,0,-2,0,0,-1,0,-1,-1,-1,0,1,-1,0,0,-1,0,0,-1,-1,0,-2,-1,0,-2,0,0,-1,0,0,-1,-1,-1,-1,0,-1,-1,1,1,-1,0,0,-1,0,1,0,0,0,-1,0,0,1,0,-1,1,1,0,0,-1,0,-1,-1,-1,-1,0,0,0,0,-1,0,0,0,2,0,0,0,0,0,0,0,-1,-1,0,0,-1,0,-1,-1,0,0,-2,-2,1,-2,0,-1,-2,0,1,-1,0,1,0,0,0,0,0,-1,0,0,0,-1,0,-1,0,0,0,-1,0,0,0,0,0,1,0,0,1,1,0,0,1,0,-2,0,0,0,0,0,-1,1,0,-3,3,0,0,0,-1,0,1,0,-1,1,0,1,-1,-3,3,0,-3,4,3,-1,-1,-1,-2,2,1,-1,3,3,-1,0,1,0,0,2,-1,-1,1,1,1,-2,-3,2,2,-2,3,3,-2,1,-3,-3,0,0,-3,2,3,0,-6,-4,-4,-4,-1,-2,-2,2,0,-4,-6,0,-3,-1,0,-3,-3,2,-2,-2,-2,-1,2,-1,1,5,0,0,0,0,0,-1,-1,-1,2,0,0,0,0,-2,2,0,-2,4,1,0,-1,0,-2,0,-1,-5,1,1,-6,-6,0,-4,-1,2,-4,-3,2,1,0,-1,0,0,-1,-2,1,0,-7,-6,-4,-5,-2,1,-3,1,1,1,-4,-3,4,-4,-3,1,-3,-2,0,-2,-3,3,0,-1,5,4,-1,1,0,0,0,0,-1,0,0,-1,0,-3,-1,1,-1,0,1,0,1,-1,-1,-1,1,0,0,1,-1,1,1,1,-1,1,0,0,-1,-1,0,0,1,0,-1,0,0,-1,0,0,-1,0,-1,1,2,-1,1,5,0,1,-1,-1,-1,1,0,-2,1,1,-1,-2,-3,-1,1,-1,1,3,-1,1,0,0,0,0,-1,-1,1,0,-1,-2,0,1,1,-1,3,0,0,0,1,0,-1,0,0,-2,1,0,1,1,-1,1,1,-1,1,0,0,1,0,0,-1,0,0,-2,0,1,0,-1,1,0,0,1,1,1,1,0,-3,1,-1,0,1,-1,1,1,0,-1,1,0,0,1,1,1,1,-1,-3,-2,-1,-1,-1,-1,-1,0,1,-4,-2,-1,-1,-2,0,1,0,0,-1,0,0,-1,0,1,0,1,-1,0,1,-1,1,-1,1,1,-1,-1,-4,-1,0,0,1,0,1,-1,-3,0,2,0,2,0,1,1,-1,-3,2,2,-1,1,0,3,1,-1,-1,-2,0,-1,1,0,-1,-1,-2,-1,0,1,0,1,1,1,0,0,-1,0,1,1,1,1,1,1,1,-1,-2,1,0,1,1,0,0,1,-3,1,2,-1,0,0,2,0,-1,0,-1,1,0,1,1,0,0,0,-4,1,2,0,2,1,2,2,2,-1,0,-1,0,1,1,1,2,-1,-2,-3,-1,-1,0,-1,0,1,-2,1,-1,-1,0,-1,0,0,1,1,-3,-1,-3,-4,-3,-3,-2,-4,-4,-2,-1,0,0,-2,1,0,-3,-1,0,-1,-2,-1,-1,0,0,1,1,0,0,0,-1,0,1,0,0,0,0,-2,-1,-1,0,0,-1,1,1,0,1,0,-1,1,1,0,-1,1,0,0,1,-1,1,0,0,1,-1,0,0,-1,-1,-1,0,0,0,1,-1,-2,-3,-3,-2,0,0,-3,-2,0,0,-1,-1,-1,1,1,0,1,1,1,0,-1,0,0,1,1,1,0,0,-1,0,0,0,1,0,0,-1,-2,-1,0,0,0,0,1,0,0,-2,-1,2,-1,0,1,-1,0,-1,-3,-1,0,0,0,1,0,1,2,-3,-3,1,-1,-3,2,0,-2,2,-5,-4,1,-1,0,3,1,0,0,-3,-4,1,0,0,0,0,0,0,-4,0,1,-1,-1,2,0,0,-1,-3,0,2,1,0,1,-1,-1,2,0,3,1,-1,0,1,-3,-2,0,2,2,1,3,1,-2,2,1,3,-4,0,2,-3,-1,3,-2,-1,-1,-1,0,0,0,0,1,0,1,1,0,1,1,-1,1,1,0,0,-1,-2,1,1,0,1,1,-1,2,1,3,3,1,3,1,-2,1,1,-2,-3,-1,1,-1,0,1,0,1,1,3,3,1,1,1,0,-1,1,-1,-2,-2,-3,-2,2,-2,-1,0,-1,0,2,1,0,-3,1,1,-2,-1,-3,-5,-1,0,0,0,0,0,0,0,-4,0,0,-3,-1,0,-4,1,0,-2,0,0,-2,0,0,-2,-1,-3,-3,0,0,0,0,0,0,-1,-1,-2,0,1,0,0,0,0,1,-5,-4,2,-2,-1,3,1,1,0,0,0,0,0,0,0,0,1,2,-3,0,1,-1,0,2,-1,0,0,-3,-4,-1,0,0,0,0,0,2,1,-5,0,0,-4,0,0,-2,-1,-2,-3,0,0,-1,0,0,0,-1,-1,-3,-1,0,-1,1,0,0,0,-1,-1,-1,0,0,0,0,-1});
    // //std::shared_ptr<int8_t[]> CONV2W(new int8_t[32*32*9]{0});
    // std::shared_ptr<int8_t[]> CONV2B(new int8_t[32]{0});
    // std::shared_ptr<int8_t[]> FC1W(new   int8_t[288*54]{1,1,1,0,-1,-2,1,-1,0,1,1,1,0,0,0,1,-1,0,1,1,0,1,-1,0,0,0,-2,1,1,-2,-1,0,0,0,0,-2,1,0,0,1,0,1,-1,1,0,-1,-1,-1,0,1,1,-1,1,0,0,-1,-1,0,1,0,0,0,-2,0,-1,0,-1,1,1,-1,0,0,0,1,1,-1,0,-1,-1,-1,-1,-2,-2,-1,0,0,0,-1,2,-2,-1,-1,0,-1,0,1,0,1,-1,2,0,0,0,1,1,0,-1,1,-1,-1,-1,-1,0,-1,-1,1,0,0,-1,-1,0,1,0,-2,1,2,-1,3,1,1,-1,0,-1,-1,-1,2,2,1,0,-1,-1,1,1,2,2,-1,0,0,1,1,-1,1,-1,1,0,0,-2,0,-1,-1,-1,0,0,-1,-1,-1,1,0,0,0,-2,1,0,-2,-1,1,0,-2,1,0,-1,0,1,0,-3,-1,-1,-1,-2,0,0,1,0,-1,2,0,-1,-1,-1,-1,0,0,1,1,-1,1,0,2,1,-1,0,1,-2,-1,1,1,0,1,0,0,2,0,1,2,1,0,-1,0,-1,1,-1,0,2,0,-1,2,-1,0,-1,0,0,0,-1,3,1,1,0,-1,0,0,-1,-1,0,0,0,0,1,0,0,1,-1,0,2,2,0,1,-2,0,-1,-5,1,0,-2,0,1,0,-1,1,1,0,-1,2,0,0,1,1,1,-1,-2,-1,0,0,-1,2,-1,1,0,0,-1,-1,-1,-1,0,0,1,0,0,2,1,2,0,-1,0,-1,1,0,-1,2,0,1,-1,1,0,1,-1,1,0,1,-1,2,0,0,2,-1,0,1,-2,0,-1,0,1,-1,0,1,3,-1,0,-2,0,0,-3,0,1,1,-3,-1,-1,-1,0,1,-1,1,1,-1,-1,0,-1,-2,1,-1,-1,0,-1,1,1,0,-1,0,0,0,2,-3,0,0,0,0,1,1,0,1,0,0,1,1,-1,1,-1,1,1,-2,1,-2,0,1,0,-1,1,2,-1,0,-1,0,1,-1,-3,2,1,0,1,2,0,2,-1,-4,0,1,0,-1,1,4,0,2,0,2,3,1,-1,1,1,1,-2,0,0,-1,0,0,0,-4,0,-1,0,0,2,-1,0,-2,1,0,0,0,-1,2,-2,0,-2,1,1,-1,-2,0,-3,2,0,0,-2,-2,4,-1,1,1,-1,0,-1,-1,-1,-1,-1,0,1,-4,0,-1,-2,1,-1,0,1,0,0,-1,2,-4,2,-1,-2,1,0,-1,0,0,1,2,-1,-1,0,0,-2,0,-1,-1,2,1,-1,0,0,1,0,0,-1,1,1,-1,2,-1,1,-1,-1,-2,0,0,0,0,1,-1,1,0,1,0,1,0,1,1,0,-1,-2,1,-2,2,-1,0,3,-1,0,-1,0,1,-1,-1,0,0,1,-1,-2,1,0,-1,0,-1,0,0,1,0,2,2,0,0,0,0,1,0,-1,0,2,0,-2,2,3,-2,-1,-1,-1,2,2,0,0,1,0,0,1,0,0,1,0,0,1,-2,-1,-1,-1,3,-1,0,1,0,1,-1,-1,1,0,-2,-1,1,0,-1,-1,0,-1,0,2,-1,1,0,0,0,0,0,0,-1,-3,2,-2,-1,-1,0,0,0,1,-2,2,-1,-2,0,-1,-1,-1,2,-1,0,-1,0,0,-1,1,0,0,1,-2,2,0,0,0,1,0,0,-2,1,0,0,0,0,1,0,0,0,-1,0,0,-1,-1,2,0,-2,-2,0,1,-1,1,0,-3,1,1,1,-2,2,0,0,-1,2,1,0,-2,1,3,-3,-2,0,-2,1,2,-2,1,-1,2,-1,0,2,1,0,-1,3,-1,0,0,0,0,0,1,-2,0,0,0,-1,1,0,0,1,-2,2,1,0,3,-2,-1,-1,0,-1,3,0,-2,0,0,-2,-1,1,0,1,0,0,-1,0,2,-1,0,-1,-1,-1,-1,-3,0,2,1,-1,1,-4,2,-1,-2,0,2,0,-1,-1,0,-1,1,-1,0,2,-1,0,-2,1,-1,-1,0,-1,-1,0,1,2,-2,0,0,-1,-2,0,0,-1,0,1,0,0,0,-1,1,0,0,0,1,-1,0,0,0,0,-1,3,0,-1,1,-1,-1,1,1,0,1,1,0,1,1,0,0,1,0,0,-1,0,0,-1,0,-1,0,0,0,0,-1,0,0,0,0,0,0,-1,0,-1,-1,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,0,-1,0,0,0,-1,0,-1,0,-1,-1,0,0,0,-1,0,-1,-1,0,-1,-1,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,-1,-1,0,-1,0,0,0,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,0,0,0,0,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,0,-1,0,-1,0,-1,-1,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,-1,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,0,-1,0,0,0,0,-1,0,-1,0,0,-1,-1,0,1,0,0,0,-1,0,0,0,0,0,0,0,-1,0,-1,-1,0,0,-1,-1,0,0,-1,0,0,0,-1,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,-1,0,0,1,2,2,0,1,1,0,1,0,0,0,-1,-1,1,0,-1,2,2,-2,1,0,-1,-1,0,0,-3,1,1,0,0,2,0,0,-2,1,2,-1,-1,-1,1,1,0,-1,0,0,1,-1,0,1,1,-1,-1,-2,2,0,-1,0,1,-1,2,2,0,1,1,-1,0,0,0,-1,0,-2,0,0,0,-1,0,1,1,0,0,1,-2,-1,2,-2,0,2,0,0,1,0,0,0,0,0,0,-3,1,0,1,-1,0,1,1,0,-1,-1,1,0,0,0,0,1,-1,0,1,1,0,0,0,0,0,-2,-2,3,2,-1,2,1,-2,-1,1,-4,0,0,0,1,0,1,2,0,-1,2,2,-2,-1,0,0,0,2,0,-1,-1,0,2,1,-2,1,0,0,-4,1,0,0,1,1,0,1,-1,0,3,-1,0,0,-1,0,0,-1,-1,-3,0,3,-1,0,-1,0,-1,-3,0,1,-1,-1,0,-1,2,1,-1,1,0,-1,0,1,0,1,-1,1,1,-1,0,2,1,1,-2,-3,1,0,-1,0,2,1,1,0,1,0,0,1,-1,-1,1,1,-1,0,-2,0,0,-1,0,0,1,0,-4,0,-1,0,1,-1,3,1,-3,0,0,0,-1,0,0,0,0,1,0,1,0,0,1,0,0,-2,2,0,0,2,0,0,-1,1,1,0,-1,2,0,-1,0,0,-1,1,2,-2,-2,-2,-1,1,-2,-1,4,-1,0,-1,0,0,0,0,0,-1,-1,0,-2,-3,0,1,-2,0,0,-1,0,-2,2,-2,1,0,-2,2,1,0,-2,-2,1,2,0,0,0,0,0,1,1,0,0,2,1,-1,1,0,1,1,0,0,0,1,-2,0,-1,0,1,1,0,1,1,-1,0,-1,-1,1,-1,2,-1,-1,3,-1,0,0,0,-1,1,0,1,0,-1,0,0,1,-1,-1,1,1,-2,0,-2,0,-1,1,0,-1,0,3,0,0,0,0,0,0,0,1,-1,0,-1,0,0,0,0,1,1,-1,1,-1,-3,0,0,1,0,0,1,1,-1,0,1,-2,-1,0,1,1,-1,0,0,1,0,0,1,0,-1,1,2,-3,0,0,-2,-1,1,2,-1,1,-2,1,0,0,-1,0,2,1,0,2,0,-1,1,1,0,-1,1,1,0,-2,1,-1,-1,0,2,0,1,1,0,0,2,0,1,1,-1,0,2,2,0,0,1,1,-3,1,-1,-3,1,-1,1,-1,0,1,1,-3,0,-1,-1,-1,-1,1,-2,0,0,3,1,0,-1,1,1,-3,1,1,0,1,1,1,2,0,-1,1,0,-1,-2,2,-2,-2,4,2,0,0,0,0,-1,0,1,-1,0,0,1,-1,-1,0,2,-2,0,2,-2,-2,1,0,-1,0,2,0,-1,1,1,-1,-1,1,-1,-1,2,-2,-2,-1,3,-2,2,2,1,-1,0,-1,0,0,-1,0,0,1,0,0,1,-1,2,3,0,1,0,0,0,0,-2,-1,2,-1,-1,0,0,0,1,1,-1,-1,2,-1,1,1,0,1,0,-2,0,0,-1,0,2,1,1,0,-2,3,1,-1,0,1,1,-1,0,0,-1,1,-1,0,1,1,1,0,-1,-2,0,1,0,0,1,0,-1,-2,-1,0,-2,1,1,1,1,1,-1,-1,2,-1,0,1,1,1,0,-1,0,0,-1,0,0,0,-2,-1,-2,0,0,0,0,1,1,1,-1,-1,1,0,-1,-1,1,1,0,-2,1,1,0,1,2,0,0,0,1,0,1,-1,0,2,2,2,-1,-1,-2,2,0,1,0,1,0,-1,3,2,-3,1,1,-1,-2,0,-2,-1,-2,1,0,-1,-1,1,1,1,-1,-2,3,-1,0,0,0,0,1,-1,0,-2,0,3,1,0,-1,2,1,-3,0,2,-1,-1,2,1,0,0,-2,0,1,-1,0,2,1,1,1,0,-2,1,0,2,0,0,0,1,0,2,-1,-1,1,1,1,-1,1,1,1,0,-1,0,1,1,0,-1,2,0,0,0,0,0,1,1,2,1,-2,1,2,-1,1,0,-2,-1,-1,0,0,0,1,1,0,1,-1,1,-2,2,1,-1,-1,-1,1,0,-2,3,0,0,-1,1,0,1,1,1,1,-1,0,0,-1,1,-2,0,-1,0,0,0,0,-3,2,-1,0,0,-1,-1,-1,0,0,-1,0,0,1,0,1,0,0,-1,-2,-2,-1,2,3,-1,0,0,-1,0,0,0,4,1,2,-1,2,-1,-4,-1,0,1,0,-1,-1,0,-1,-1,-1,0,1,2,0,0,1,1,0,-2,1,0,0,-1,-2,0,0,-1,1,1,-2,-1,0,-1,0,0,-1,0,0,0,1,1,-2,0,1,-2,0,1,0,1,-1,-1,0,-1,0,1,3,1,1,1,0,-1,1,1,-1,1,-1,1,1,0,-1,0,-1,0,1,1,1,0,0,0,-3,0,0,-1,0,1,1,-1,2,2,1,0,-1,3,-1,-2,3,0,2,0,-2,-1,1,0,1,0,2,1,-2,-2,3,0,0,0,-1,0,0,1,0,-1,1,2,0,-1,0,0,0,-1,-1,-1,2,0,0,0,2,-2,-2,0,0,-2,-1,0,0,1,2,2,0,0,1,-1,0,0,1,0,1,0,0,0,-1,-1,0,-2,0,-1,-1,0,1,0,-1,2,-2,-1,0,0,2,0,-1,1,-1,0,0,-1,2,0,1,0,0,0,-2,-2,0,0,-1,0,1,0,1,1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,-1,1,0,-1,0,0,-1,0,1,-1,1,1,-1,-1,-1,1,-1,-1,1,1,-1,0,-1,-1,0,-1,2,-1,-1,-2,-1,-2,1,-2,1,1,1,0,-1,-1,0,-1,0,0,0,1,1,0,0,0,-1,0,0,1,1,0,0,-1,-1,0,0,-1,0,1,0,-1,0,-1,0,0,-1,1,1,0,-1,-2,-1,-1,0,0,0,0,-1,0,-1,-1,-1,-1,0,0,0,0,0,0,-2,0,1,-1,-1,0,0,0,1,0,0,0,-1,0,2,-1,0,0,0,0,1,-1,-2,0,-1,-1,1,-2,0,0,-1,0,0,0,-1,1,-1,-1,-1,0,1,0,-2,1,-1,0,2,-1,-1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,0,-1,-1,-1,-2,-1,0,1,1,0,0,-1,-1,1,0,-1,0,-1,-1,0,-2,0,1,-1,1,1,0,0,0,-1,-2,0,0,-1,-2,0,1,-2,0,0,0,0,0,0,1,0,-1,2,-2,0,1,-2,-2,1,-1,0,1,0,0,1,-1,1,0,0,0,-1,0,1,1,1,0,0,0,0,1,0,0,1,0,-1,0,0,0,0,0,-1,-1,-1,1,2,0,0,0,0,-2,0,-1,-2,-1,-2,0,-2,0,-1,-2,0,-1,1,-1,-1,1,-1,-1,0,0,0,0,1,0,0,-1,1,0,0,-2,0,-1,-1,0,1,0,1,0,-1,1,-1,0,0,-1,0,0,-1,-1,2,0,-1,0,-2,-2,1,-1,-1,-1,-1,0,-1,-1,-1,-2,0,-2,-1,0,-2,-1,0,-1,-1,1,1,0,0,-2,0,1,-1,-1,2,0,1,-1,0,0,1,0,0,0,-1,2,1,0,1,1,-1,0,0,1,-3,-2,1,1,-1,2,0,0,0,1,1,1,1,1,-3,0,-1,1,1,0,-1,0,-1,-1,0,-2,1,1,2,0,0,-1,-1,-2,-4,2,0,1,-2,0,-1,-3,0,-1,-1,1,1,-2,0,-2,-2,-2,0,0,2,-1,1,0,2,-1,0,0,1,0,1,-1,0,-1,-1,1,1,1,-1,-1,1,0,0,-1,0,2,0,1,0,-1,0,-2,-1,0,-3,1,2,1,1,1,-1,-2,0,-3,-3,3,-1,1,2,2,-1,1,-2,-3,-2,-3,-2,1,-3,-1,2,2,0,2,1,1,-1,1,-3,-3,-3,1,-2,0,-1,1,1,-3,0,1,1,-1,0,1,0,0,1,-1,-2,1,1,0,-1,0,-3,-1,-1,-2,-2,0,-5,0,0,-1,-1,0,0,1,2,0,-1,1,0,-1,-2,-2,1,0,0,-2,0,-1,-2,0,-1,1,2,-1,2,1,1,-2,0,0,1,-3,0,-2,2,-1,-3,1,-2,1,0,-1,-3,0,-2,-1,1,1,-1,-1,-1,1,0,0,0,1,-2,1,0,0,1,0,1,-2,0,-1,0,1,0,1,0,0,-1,0,-1,1,1,0,1,-1,-1,2,-4,-2,2,0,1,-1,0,-2,0,0,-1,1,-3,0,-1,0,0,-2,0,-1,-2,2,0,1,2,1,1,0,-1,0,0,0,0,0,0,0,0,1,-2,2,2,-2,0,-1,1,-1,-1,1,-3,-2,0,0,1,0,-1,1,-2,0,0,-3,-1,-1,0,0,0,0,1,0,0,-1,-1,1,0,1,0,1,-2,0,-1,0,1,-1,1,-1,0,-1,1,-1,0,0,0,0,-2,2,0,1,-1,0,0,-1,-1,0,1,-2,1,-1,0,0,0,1,-1,-1,0,1,0,-1,1,1,1,-3,-1,3,1,0,1,-1,0,-1,-1,1,-1,0,-1,1,1,0,1,1,-1,0,0,-1,-1,1,0,0,0,-1,-2,0,1,0,-2,-1,-1,3,-2,3,0,1,1,-2,2,-1,0,1,0,-1,0,-1,0,0,1,-4,-1,0,1,2,0,-1,0,0,0,1,-3,0,-1,0,0,-1,2,0,-1,-1,0,-1,0,0,0,2,-1,0,1,1,3,1,0,-2,-2,0,1,-1,0,0,-1,0,-1,-1,0,0,-1,0,-1,-1,2,0,1,-3,1,-1,-1,0,1,0,-1,0,0,-3,1,0,-1,1,-1,1,-1,-2,0,-1,1,-1,0,2,0,0,-3,1,-2,1,0,-1,1,1,0,3,-1,1,-1,1,0,-1,0,-1,0,1,-1,0,-1,0,0,0,1,-2,1,-4,1,1,1,1,-2,1,1,-1,1,0,-1,0,1,0,0,-2,-1,1,0,1,1,-2,1,-1,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,1,0,0,0,0,0,0,0,-1,0,-1,-1,0,-1,0,0,0,0,0,-1,-1,-1,0,0,0,-1,0,-1,0,0,0,0,-1,-1,0,0,-1,0,0,-1,-1,-1,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,-1,0,0,-1,0,0,0,-1,-1,-1,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0,-1,0,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,-1,-1,0,0,0,0,0,0,-1,0,0,-1,-1,0,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,-1,-1,0,-1,0,-1,-1,-1,0,0,0,-1,-1,0,-1,0,0,0,0,-1,0,0,0,0,-1,-1,-1,-1,-1,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,-1,0,-1,-1,0,-1,0,-1,-1,0,0,-1,0,0,0,-1,0,0,-1,-1,-1,0,0,0,0,0,0,1,1,0,-1,0,-1,0,0,0,-1,-1,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0,-1,-1,0,-1,0,0,-1,0,0,0,0,0,0,0,-1,-1,0,-1,-1,-1,0,-1,0,-1,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,-1,-1,0,-1,0,-1,0,0,0,0,-1,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,-1,0,0,0,0,-1,-1,-1,-1,0,0,-1,-1,0,0,-1,-1,0,0,-1,-1,0,0,0,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,-1,-1,0,-1,-1,-1,0,0,0,-1,-1,-1,0,-1,0,-1,-1,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,-1,-1,0,0,0,0,-1,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,0,0,0,-1,0,0,0,0,-1,-1,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,1,-4,1,0,0,-1,0,-1,1,0,0,0,-2,2,1,0,2,0,-1,0,-1,1,-5,-2,-1,1,1,1,-3,2,-2,1,2,0,1,0,-2,2,-2,1,0,0,0,0,-1,-1,1,-1,0,-1,1,0,-1,0,0,-2,2,2,-1,1,1,0,-1,-1,0,-2,0,1,1,1,0,-1,1,-2,-1,1,1,-1,1,-1,1,-1,1,1,0,-1,2,0,0,0,0,0,0,-1,-1,1,0,-1,0,0,-1,1,0,0,0,0,0,-1,0,0,-1,2,1,1,0,1,-1,-1,0,-3,-2,2,0,0,2,1,-2,0,-1,0,-2,1,-2,0,-1,-3,3,0,-1,2,3,-1,1,0,-3,1,0,1,-2,0,0,3,0,0,-2,1,1,-2,-1,0,0,0,0,-3,1,0,1,0,-1,-1,0,-1,2,0,-1,-1,-1,0,1,1,1,-2,0,1,0,-1,1,-1,0,0,-3,1,1,-1,1,0,-1,0,-1,1,0,0,2,-1,0,2,0,-1,0,-1,1,-1,1,-1,1,0,-2,2,-2,1,0,0,-1,-1,-1,1,1,0,0,-1,-1,0,-1,2,1,0,0,2,0,1,0,1,-1,2,1,-1,0,1,0,0,0,-1,0,0,0,1,2,-1,0,0,0,0,-5,2,2,0,1,-1,-1,0,0,1,-1,-1,-1,0,-1,1,0,0,0,2,-1,-2,0,0,-1,0,1,1,0,0,-1,0,0,1,1,0,0,1,0,0,0,0,-1,1,1,-3,0,1,-3,-4,0,-1,1,0,0,-1,-1,0,0,0,1,-1,1,-2,0,-1,1,-1,-1,0,0,0,-1,1,1,1,-3,0,0,-1,0,0,-1,-1,0,-1,0,1,0,0,1,-1,1,2,0,1,1,0,-1,1,-1,1,2,-1,-1,2,0,-3,1,0,-1,0,0,0,1,0,0,-1,-1,-3,1,0,0,1,-1,-1,0,-1,0,0,-1,-1,0,0,0,0,0,0,1,-1,-1,1,0,-1,-2,1,2,1,0,1,1,0,0,-3,0,3,-1,1,1,-4,-2,-1,-2,2,1,2,-2,0,0,-3,0,-2,-1,-4,0,1,-1,2,1,-2,2,1,1,0,-3,0,0,0,0,1,-1,2,1,-3,0,1,-1,-2,0,1,0,-1,2,1,-1,1,1,0,-1,1,0,-1,0,0,0,1,1,-1,-2,1,-1,0,0,0,0,-1,0,-1,1,-1,-1,1,0,-1,0,1,-1,-2,-2,0,-2,-1,0,-1,1,-2,1,-1,0,1,-1,1,0,-1,-1,1,0,-1,1,-1,0,1,-2,0,-1,0,0,-1,1,-1,1,1,1,0,-1,0,0,0,-1,1,0,-1,0,1,-1,1,1,1,0,0,1,0,-1,-1,-1,-1,0,-1,0,-4,1,0,-1,-1,0,-1,1,0,0,1,-1,0,0,0,-1,-2,1,0,0,1,-1,1,-1,0,0,0,1,0,2,1,-2,1,0,-2,-2,0,1,-2,0,0,0,2,-1,-3,2,0,1,1,-1,0,0,-3,-1,0,-1,0,-2,1,0,-2,1,0,1,-2,-2,0,1,-1,1,1,-3,-1,-1,-1,-1,1,0,-1,2,0,1,0,0,0,0,-1,-1,-1,1,-1,-2,-1,-2,2,-1,-1,0,-1,-1,-1,-3,-1,1,0,-1,1,-1,1,1,-1,-1,1,0,-1,-1,1,0,-1,0,-2,1,0,-1,2,0,0,0,0,0,1,1,-2,1,1,2,3,2,2,-1,0,0,-2,-2,2,0,0,2,0,0,2,-2,2,3,1,0,1,-1,-1,-1,0,-2,-3,2,-1,-1,0,-1,-2,0,1,0,-2,-1,-1,1,1,1,0,-3,1,0,-1,-1,0,0,0,1,0,0,0,2,0,-2,0,0,-1,0,0,-1,0,0,1,1,0,1,-1,-1,-1,0,0,1,0,-1,1,-1,3,0,0,1,0,0,-2,0,1,-1,-1,-2,2,1,0,1,1,1,0,-1,-1,-1,2,-1,0,1,0,0,2,0,-1,0,-1,0,1,-2,-2,0,0,1,2,2,-2,0,1,0,0,0,0,1,0,-1,1,0,-2,2,4,-2,-1,0,1,-1,-3,-2,-1,-2,1,1,0,0,1,0,-2,0,-1,0,0,2,-1,1,0,-1,-1,-1,1,1,1,-1,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,-1,0,1,-2,1,-1,3,0,1,-2,0,1,0,0,-1,3,-2,-2,-2,-1,3,-2,1,0,0,-1,1,-1,-1,1,-1,1,-1,1,-2,0,1,1,0,1,1,-1,0,-1,0,-1,0,1,1,0,1,0,-1,1,0,0,0,0,1,0,-1,0,0,-1,-1,0,-1,0,-1,1,-2,2,-1,-1,1,-1,0,2,-2,-1,-1,0,-1,0,-1,-1,0,0,0,0,-1,1,-1,-1,0,0,0,-1,0,-1,0,0,0,1,0,1,-1,0,-1,-3,-2,-2,0,1,-3,-1,-1,0,-1,-3,-2,-2,-1,0,-2,0,0,-1,3,-2,1,-2,3,-1,0,0,1,2,0,0,-1,3,0,0,-1,0,0,1,0,0,-1,0,0,-1,1,1,-1,1,0,0,2,0,2,-2,-1,-1,-2,0,0,0,0,1,0,0,2,0,-1,0,-1,1,-1,-1,2,0,0,-2,0,0,0,-2,0,2,-2,0,2,-4,1,0,-2,0,-1,-1,0,0,-1,0,1,-1,1,0,-1,0,0,2,-1,-1,1,-1,-1,0,0,-1,-3,0,-2,2,2,-1,0,-1,0,-1,0,1,-1,0,0,0,0,-1,-1,0,0,0,1,0,2,0,0,-1,-1,1,0,0,0,-1,1,1,-3,0,-1,0,1,-1,1,-1,-1,-1,-1,-1,0,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,-1,-1,0,-1,0,-1,0,-1,-1,-1,0,0,0,-1,0,0,-1,-1,0,0,0,0,-1,-1,0,0,0,0,-1,0,-1,-1,0,0,-1,-1,0,0,0,0,0,0,-1,0,0,-1,-1,1,0,0,-1,0,0,-1,0,-1,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,1,-1,0,0,0,-1,0,0,0,-1,-1,1,1,0,0,0,0,0,-1,0,0,0,-1,-1,0,-1,-1,0,0,-1,-1,-1,-1,0,-1,-1,0,-1,0,-1,-1,0,-1,0,0,0,0,0,0,-1,-1,0,0,-1,0,0,0,-1,-1,0,-1,0,-1,-1,-1,-1,-1,0,0,0,0,0,0,-1,-1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,0,-1,0,0,0,-1,0,0,0,0,0,-1,0,-1,-1,0,-1,0,0,0,1,0,1,1,0,1,-1,0,1,1,0,0,0,0,0,0,1,-1,3,1,-1,1,0,-1,-1,-1,1,-3,-1,0,1,0,0,0,1,-3,1,1,-2,1,-1,0,1,-2,0,-1,0,1,0,0,0,1,0,0,-1,1,0,-1,-1,1,-1,1,2,-1,0,0,-1,-1,0,0,-1,0,0,1,1,-1,-1,1,-1,-1,0,0,0,0,-1,0,-1,2,0,1,-1,0,1,0,0,0,1,0,-1,0,1,1,-1,0,0,2,0,-1,-1,0,0,0,-1,0,1,0,1,0,1,1,1,-1,0,1,-2,-1,3,0,-1,2,1,-1,0,0,1,0,0,-1,1,0,-2,3,-1,-1,1,1,-2,1,0,-2,0,0,1,-2,0,1,2,0,0,-1,0,0,-3,0,1,0,0,1,-1,2,0,0,1,0,0,0,-1,1,1,-1,-2,-1,0,3,1,1,-1,-1,1,-1,0,1,-1,0,1,-1,0,1,-1,0,0,-1,0,1,1,0,0,3,-1,0,2,-1,-1,0,-2,0,0,1,-1,0,1,-1,3,-2,0,0,-1,0,0,-1,1,1,-1,0,0,0,0,-1,0,1,0,1,1,1,0,0,1,0,2,2,-1,0,0,-1,0,-1,0,1,0,0,0,2,-2,0,0,0,0,-3,2,1,0,1,-1,0,0,1,1,-1,-1,0,1,0,0,0,-1,1,1,0,-1,0,-1,-1,-1,-1,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,-1,-1,0,0,1,-1,-1,0,0,0,0,0,-1,0,0,-1,-1,0,-1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,0,-1,0,0,0,0,1,0,1,0,-1,0,0,0,0,-1,-1,-1,0,0,-1,0,0,-1,-1,-1,-1,-1,0,-1,0,-1,0,0,0,0,0,0,0,-1,-1,0,-1,-1,-1,0,0,0,0,-1,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,-1,0,0,-1,-1,-1,0,0,0,-1,0,0,0,1,0,0,0,0,0,-1,0,0,-1,-1,-1,0,0,0,-1,0,1,0,0,0,0,-1,0,0,0,-1,1,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,0,-1,-1,0,-1,-1,0,0,-1,-1,-1,-1,0,0,0,0,-1,0,0,0,-1,0,-1,0,0,0,0,0,-1,-1,0,0,0,-1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,-1,-1,0,-1,-1,0,-1,0,0,-1,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,0,0,0,0,0,0,-1,0,0,-1,-1,-1,0,-1,0,0,-1,0,0,-2,1,1,-1,1,0,-5,1,0,0,0,0,-1,1,0,0,0,1,0,-1,-1,2,0,1,-2,0,0,-1,0,1,1,0,0,-1,1,-2,1,1,0,1,0,-1,1,-1,1,0,0,-1,1,-1,-2,1,-2,1,-2,2,1,0,0,0,-1,0,2,0,2,0,0,-1,-1,0,-1,3,-1,2,1,1,-1,1,-3,0,1,-1,2,0,2,2,-2,0,-1,1,0,2,0,0,-1,-1,1,-1,-1,1,-1,0,-1,0,-1,-1,1,1,-1,1,0,0,0,-1,0,-1,0,1,1,-1,2,0,-1,1,-1,0,3,0,0,1,0,1,-2,-1,-3,0,-4,-2,-3,-2,0,-2,0,0,2,-1,-1,1,0,0,0,-2,2,-2,1,-1,3,1,-2,-2,1,1,-4,3,0,1,1,1,-1,1,1,0,2,0,0,-2,-1,1,-2,0,-1,-3,-1,-2,0,1,-2,1,1,-2,1,1,0,1,1,-2,1,2,-1,1,0,0,0,-2,1,0,0,2,1,0,3,1,-2,-1,0,-1,2,-3,-1,2,-1,-2,2,0,3,0,0,-1,0,-2,-1,3,-1,1,-2,1,0,0,1,0,0,-2,-2,1,-1,-2,1,0,1,2,1,0,1,0,0,0,0,-1,0,-1,1,1,3,-1,-1,1,0,-2,1,0,1,2,0,0,-1,0,1,-1,0,1,-2,-1,-1,0,0,-1,1,0,0,0,0,0,0,0,-1,0,0,0,0,1,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,-1,-1,0,0,0,0,-1,0,-1,-1,-1,-1,0,0,0,0,0,0,-1,0,0,0,-1,-1,0,-1,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,0,-1,0,-1,0,-1,0,0,0,-1,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,-1,0,0,-1,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,0,0,-1,-1,0,0,0,-1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,0,-1,0,-1,-1,-1,0,-1,0,-1,0,0,0,-1,-1,-1,0,0,0,0,-1,0,0,0,-1,0,0,-1,-1,0,-1,-1,0,0,0,0,0,0,-1,-1,0,0,0,-1,0,0,-1,-3,1,0,-1,-1,0,-2,0,0,0,0,0,0,0,0,0,-1,0,-2,3,0,0,2,0,-2,0,0,0,-1,0,-1,1,2,-1,-3,1,0,1,0,1,0,0,-1,-1,0,-1,-1,0,1,0,-2,0,0,0,0,0,1,1,-1,0,0,-4,-1,0,0,0,1,0,-1,0,-2,0,2,1,1,1,-1,-1,-1,-1,-1,-1,-1,0,0,0,-1,0,-1,-2,0,-2,0,0,-1,-1,0,-1,0,1,-1,0,1,1,-1,-1,0,0,0,0,0,1,-1,0,0,-2,-2,1,0,0,0,1,-1,0,0,2,0,3,1,1,3,0,-1,-1,1,1,0,1,1,2,2,0,2,3,1,1,0,0,-1,-1,0,-1,-5,-1,2,-3,1,1,-4,1,1,0,-1,-1,0,0,1,1,1,-4,1,1,0,0,0,-1,-1,-1,-2,1,1,1,0,-2,1,0,0,-1,0,-1,0,0,1,1,-1,0,-3,-1,0,0,0,1,0,-1,0,-1,1,0,1,1,2,0,-1,0,0,-2,1,-2,1,0,2,-1,-1,0,0,1,-1,-1,0,-1,-2,0,-1,1,1,1,0,1,-1,-1,-1,-2,-3,0,0,0,1,2,-2,1,0,0,0,0,0,1,0,0,0,-1,-1,1,4,0,0,0,0,-1,-4,-2,1,-1,1,0,0,0,0,-1,-3,2,0,0,1,2,-3,-1,-1,-1,2,-2,1,1,-1,-1,1,-1,1,0,0,0,0,0,-1,0,-1,0,2,0,-1,-1,-1,0,0,1,0,-1,1,-2,0,1,-2,0,1,0,-1,-1,0,0,1,1,0,1,-1,-1,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,-1,-1,1,1,1,0,1,-1,0,-1,-2,0,0,-1,1,0,-1,-1,0,-2,1,-1,0,0,-1,0,-1,0,0,0,0,1,0,-1,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,-1,0,-2,-3,0,0,1,0,1,0,-2,1,2,0,0,0,0,0,-1,0,0,0,1,1,1,1,-1,0,0,-2,1,1,-2,0,0,1,-1,0,0,-1,1,1,0,0,0,-1,0,0,0,1,1,1,0,-1,0,-1,0,-1,-3,0,1,0,1,1,-1,0,1,-1,0,0,0,0,0,0,1,1,0,1,0,1,-1,-1,0,-2,0,2,0,0,0,0,-1,-1,0,1,1,1,1,1,1,0,1,0,2,1,1,-1,0,0,0,0,1,-1,0,1,1,0,-1,1,-2,0,4,1,-1,-1,-1,0,0,0,0,0,0,0,1,1,0,-1,-1,0,0,-2,1,1,-1,0,-1,-1,0,0,1,1,0,1,0,1,-1,0,2,0,-1,1,-2,-1,0,-1,0,-4,-2,-1,0,0,-1,1,0,-1,0,0,-1,1,1,-3,1,-3,0,1,-2,0,-2,3,3,0,0,-1,-1,0,-1,1,2,-1,2,-2,0,2,-3,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,1,0,-1,-1,-1,-1,1,1,0,2,2,-2,-1,0,-1,2,0,-1,0,0,-2,1,-1,0,-1,1,-1,0,1,1,1,-1,0,1,0,-1,1,1,0,0,0,0,-1,0,-1,0,1,-1,1,0,-1,1,-1,0,1,0,-1,0,0,0,0,0,0,0,-1,0,0,0,-2,-2,0,0,0,-2,1,1,-1,-1,-5,1,-1,-1,-1,-1,-1,1,-1,1,3,-1,0,3,3,-1,3,-2,-1,1,-2,-1,-1,1,3,-1,0,0,0,0,1,0,-2,2,1,0,1,1,0,0,0,1,-1,-1,-1,-2,0,-3,1,0,-1,0,-1,0,-1,1,1,1,0,0,0,0,1,1,-1,0,0,0,-1,0,1,-2,0,-1,0,-1,-1,1,1,0,-1,-4,1,0,1,2,0,1,1,0,1,-1,0,0,1,0,0,0,1,0,0,0,2,0,1,-1,0,-2,-1,2,0,0,1,-2,1,-1,-1,0,1,-1,0,0,-1,1,0,0,0,-1,1,1,-1,-1,1,0,0,-1,0,1,1,1,0,0,0,-1,-2,3,0,1,3,-3,1,-2,0,1,1,-2,0,0,1,0,0,1,1,0,0,0,-1,3,-2,-1,0,-2,-1,2,0,1,-1,-3,1,0,0,0,-1,1,-1,2,0,-3,0,-2,0,2,-2,1,1,0,0,-1,0,0,0,-1,0,1,-2,0,-1,0,0,-1,4,1,0,1,0,0,-1,0,0,-1,0,1,-1,0,-1,0,2,-1,0,1,2,-1,1,-1,-2,0,0,0,0,0,1,0,0,0,1,0,0,0,-2,2,-1,-1,0,-1,-1,0,0,1,0,1,0,0,0,0,0,1,1,0,0,0,-1,1,0,-2,0,1,-1,-1,0,-3,-1,0,0,1,-3,-1,-3,-1,-4,-4,0,-3,-3,2,-1,-1,-1,-1,0,1,2,-1,0,1,1,1,1,3,-2,0,0,2,-2,1,-1,1,-1,-2,1,-1,-1,-2,1,-1,-1,0,1,0,-1,0,-1,-1,1,0,1,-1,-1,0,2,-1,-1,-1,0,0,-1,2,0,1,0,-1,0,-1,1,0,0,0,3,0,0,0,0,2,-1,-2,1,-2,0,-4,-2,-1,-2,0,-1,0,0,0,1,-2,1,1,0,-1,-1,-1,-1,1,0,0,1,0,1,0,-2,2,-4,1,0,1,2,0,0,-1,0,0,-1,0,0,-1,0,1,-1,-2,0,0,0,-1,-1,4,1,0,0,-1,-1,1,-1,0,0,0,-2,0,-1,1,0,1,0,2,-1,-2,0,-2,-1,0,0,-2,1,-1,0,1,0,0,0,0,-1,0,1,-1,-1,-1,0,0,-1,1,1,-1,-1,1,0,1,2,0,-1,-1,-1,1,1,0,2,0,0,1,-1,0,-1,0,-1,1,0,-1,1,-1,0,-1,1,0,0,0,0,0,1,0,0,0,-1,1,1,-1,0,-1,1,0,0,0,0,-1,-1,-1,-1,1,-1,1,-1,1,-1,-3,1,0,0,0,0,-1,0,0,-1,1,-1,-2,1,-1,0,1,-1,0,0,1,0,-1,1,-1,1,1,-1,1,-1,-1,1,0,0,1,0,-1,1,-1,2,2,2,0,0,-1,-1,-1,0,-2,1,-1,2,-1,-1,0,-2,0,2,0,-1,0,0,0,-1,1,1,-1,-3,1,0,0,0,-1,0,1,0,-2,1,-1,1,1,-1,-1,0,1,1,0,-1,1,1,-3,1,-2,0,-1,0,0,-3,0,1,-2,-1,0,-2,1,0,0,1,0,-1,1,-1,-1,1,0,1,0,-2,1,0,0,0,1,-1,1,-1,0,0,0,-2,1,-1,1,1,0,1,1,1,1,1,0,0,1,-1,-1,1,-2,1,-2,2,-1,0,1,1,-1,0,-3,0,0,0,-2,1,3,0,0,-1,0,-1,-1,1,0,0,1,0,0,2,3,-1,-1,-1,0,-2,0,-2,0,0,0,0,1,-1,0,-1,-1,0,0,1,0,1,2,1,2,-1,0,1,0,0,-1,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,0,0,0,-1,0,-1,-1,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,-1,0,0,0,0,-1,-1,-1,-1,0,-1,-1,0,0,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,0,0,-1,0,0,1,-1,0,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,0,0,-1,0,0,1,0,1,0,-1,0,0,0,0,0,0,0,0,1,-1,0,0,0,1,0,-1,0,-1,0,0,0,-1,-1,0,-1,0,0,-1,-1,-1,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,0,-1,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,-1,0,-1,-1,0,0,0,-1,-1,0,0,-1,-1,0,-1,-1,0,-1,0,0,-1,0,0,-1,-1,0,-1,0,1,-1,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,-1,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,-1,0,0,-1,0,0,-1,-1,0,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,0,0,0,0,0,0,-1,0,-1,-1,0,0,0,-1,-1,0,-1,-1,-1,0,-1,-1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,1,0,0,0,0,-1,0,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,0,-1,0,0,0,0,0,0,0,0,-1,0,-1,-1,0,0,0,-1,0,0,0,-1,-1,0,0,-1,0,0,0,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,-1,0,-1,0,-1,-1,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,-1,0,0,0,-1,0,-1,0,0,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,-1,0,-1,0,0,-1,0,0,0,0,0,-1,0,-1,2,-3,4,2,7,-3,-5,-3,0,0,0,0,0,1,0,0,0,0,0,-3,-1,2,-1,0,0,1,-1,-3,0,2,0,-2,1,-1,-2,0,-4,-2,1,1,-1,1,0,1,-1,0,-1,1,-1,-2,2,0,0,-1,1,-3,2,0,-2,-1,-2,-3,-1,1,-3,2,0,-1,-1,-1,-2,1,-1,0,3,1,-1,-1,-2,-3,-1,-1,-1,-2,0,0,2,1,3,-1,0,-1,2,0,-1,1,-1,1,-2,0,-1,1,-1,0,-2,-2,-3,-2,-1,0,0,2,0,0,-2,0,-2,1,-1,1,0,0,1,0,0,-1,0,-6,0,1,0,1,1,1,0,0,1,0,2,0,-3,-1,0,0,1,-4,-1,1,-1,1,0,0,-3,2,-4,3,1,1,-3,-3,-3,-1,-2,-1,1,1,-3,0,-1,-1,1,-1,2,-1,-1,-1,-1,-2,-2,0,1,-1,1,6,2,0,-3,0,-1,0,-3,2,1,-3,-3,-4,-4,-2,1,1,-1,-2,-1,2,1,0,-4,2,-3,3,0,4,1,-1,-1,-1,-1,0,0,0,1,-3,-1,0,-1,0,1,0,0,0,-1,-1,-4,-1,-2,-3,-3,0,-4,1,1,1,0,0,-1,1,2,-1,-2,-3,-2,0,-1,1,0,-1,-1,2,-1,2,1,2,-6,3,1,-1,-1,-2,1,-1,-2,2,1,0,-2,-2,-2,-2,-1,1,-2,0,0,0,-3,0,0,2,4,1,-1,-2,-2,1,-1,0,0,0,0,1,0,-1,1,-1,0,-2,2,0,0,-3,-2,1,1,-1,1,2,-2,-1,-1,1,0,1,0,1,0,-2,-1,0,-2,-1,1,0,-1,-1,-2,0,0,0,0,0,2,-1,0,-1,-1,0,1,0,0,-1,-1,-1,-1,-1,0,1,0,0,1,-2,0,-1,-1,-1,0,0,0,0,-2,-1,-2,1,-1,-1,1,0,-1,-1,-2,-1,0,0,1,0,0,1,1,0,-1,0,0,1,1,0,0,-2,0,-2,1,-1,0,0,0,1,0,-2,-1,0,1,0,0,1,2,0,2,-1,1,-2,-3,-1,0,0,3,1,1,0,1,1,-1,0,-2,-1,-2,-3,0,0,0,-1,0,0,2,1,1,-1,-1,-2,1,-1,0,-1,1,-2,0,0,1,0,0,0,-1,-1,-3,0,0,1,1,-1,2,0,1,1,0,-3,-1,-1,2,-4,0,1,0,0,-1,1,0,0,-2,-1,-1,-1,1,0,0,0,0,1,2,1,-2,-2,0,-3,0,0,2,1,0,0,1,2,0,1,0,0,0,-1,-1,-1,0,0,1,-1,2,-1,3,-2,1,0,1,0,-1,-1,3,0,1,0,-2,1,0,-2,-1,0,-1,-1,0,0,0,0,1,0,0,0,1,1,-1,0,0,1,-3,1,-1,-2,0,0,1,0,0,1,0,-2,2,1,1,1,1,1,-1,-2,4,-1,-1,0,1,-1,-2,0,-1,0,1,0,0,0,1,0,0,1,1,2,-1,-2,-1,0,-2,-3,0,0,-4,1,1,-2,1,0,0,1,0,0,0,-1,-2,-1,-2,-1,-1,-1,-1,1,0,-1,0,0,0,0,-1,-3,0,0,-2,1,0,-2,-1,-1,-2,0,1,-1,0,1,1,0,1,-1,0,0,-2,0,0,0,-2,0,-1,-2,1,0,0,-1,0,0,-1,-3,0,1,-1,0,1,1,-1,1,-1,0,1,0,-1,-1,1,-1,-1,-1,-1,1,-1,0,1,0,-1,-1,-1,0,1,0,-1,0,0,2,3,0,0,0,2,0,-3,-3,3,-1,-1,1,1,2,1,0,2,3,0,-1,-1,-1,-2,-1,-1,-3,-4,1,0,0,3,1,-1,1,1,0,-2,-3,0,1,-1,1,1,-1,0,0,-1,-1,0,-1,0,1,1,1,0,1,0,1,1,1,-1,1,1,-2,0,0,0,0,0,1,0,-1,-1,0,0,0,0,0,1,0,-1,0,0,0,1,1,-2,0,0,-2,-2,-2,3,1,1,0,0,1,-1,0,-3,-1,1,-2,0,1,0,1,3,0,-1,0,-2,0,0,-1,-3,1,1,1,3,2,0,0,1,-1,0,-1,-1,0,0,0,1,0,-3,2,2,-1,0,-1,0,1,-1,0,-1,-1,2,-1,-1,1,1,0,-2,2,0,1,1,3,-1,1,0,-1,1,-4,-1,0,-1,-3,-1,1,0,0,1,0,0,0,-1,1,0,1,1,-1,0,-3,-2,0,0,2,-1,-1,2,-1,2,0,-3,1,0,0,-2,0,0,0,-2,2,0,1,-2,2,2,-3,1,0,2,1,-1,-1,0,2,-2,0,0,0,1,2,-1,0,-2,-2,0,0,0,1,3,2,2,0,-1,0,2,-1,0,2,-3,1,0,-6,3,-1,1,0,1,-2,1,1,-4,1,0,0,0,0,1,0,2,0,0,-3,0,-1,2,-2,0,0,-4,0,0,-1,1,0,-3,0,1,0,0,1,1,0,-1,1,0,2,1,-1,-3,0,1,0,-2,0,2,2,-2,-3,2,-1,-2,0,0,1,-1,-2,-1,1,1,1,-5,2,-2,4,0,-2,2,-2,-1,-2,1,1,-4,1,-1,-3,1,2,-2,0,1,-2,1,0,-1,3,0,-2,0,-1,1,-3,0,0,-5,4,1,0,1,-2,0,0,0,0,1,-2,2,2,-4,2,1,0,0,-1,-2,0,0,0,-1,-1,-1,1,-1,-4,-1,2,1,0,-2,1,1,0,-3,1,-1,1,0,0,0,2,1,2,1,0,-2,0,1,-2,0,1,-5,1,-1,2,-2,-3,2,-1,0,-1,0,0,-1,1,-1,0,0,0,-3,2,0,-7,0,-1,0,-3,7,-2,-1,2,-1,0,0,0,1,1,-4,1,0,2,-1,-2,4,-3,1,0,-2,1,-1,-1,0,3,0,-1,0,1,0,0,0,1,-1,0,2,-1,1,1,1,-1,1,0,1,1,1,0,-2,1,-1,0,0,1,-2,-1,1,1,1,0,1,1,1,2,0,0,0,0,-1,-1,0,0,0,0,2,0,-1,0,0,0,-1,-2,0,1,0,-1,0,-1,0,0,0,-2,1,1,0,-1,0,-1,-1,-1,0,0,-1,1,-1,1,0,0,0,-1,0,0,0,-1,0,0,1,0,1,-1,0,0,0,0,0,-1,1,0,1,-1,0,0,0,0,-1,0,0,1,-1,0,-1,-1,1,-1,0,-1,0,-1,1,0,2,1,0,1,1,-2,0,-1,1,0,-1,2,1,-1,0,1,1,-1,0,0,-1,0,0,1,0,-1,0,0,0,-2,0,1,2,-2,1,-1,-1,-1,-1,-1,0,-1,-2,0,0,0,0,0,2,-2,-1,0,0,-1,1,0,0,-1,0,3,0,0,-1,0,-1,-1,-2,0,1,-1,0,0,-2,0,0,-1,1,1,-1,0,-1,0,0,0,1,1,-1,1,-2,0,-1,-2,1,0,-2,-1,-1,0,0,-1,1,1,1,-1,1,-2,1,-1,1,0,0,-1,3,-1,0,0,0,1,-4,-2,0,-1,0,0,1,-1,0,1,0,0,0,-1,-2,0,0,1,0,-1,-1,1,0,0,0,0,-1,0,0,0,0,0,1,0,0,0,-1,0,-1,-1,1,0,-1,0,-1,0,0,0,-1,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,1,-1,-1,0,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,0,0,-1,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,0,0,-1,-1,0,1,-1,0,0,0,-1,0,0,0,0,0,0,-1,-1,-1,0,0,0,-1,0,-1,0,0,0,0,0,0,0,-1,-1,0,0,0,0,-1,-1,-1,0,0,0,0,-1,0,0,0,0,0,0,-1,-1,0,0,-1,1,0,-1,0,0,0,0,0,0,0,0,0,-1,-1,-1,0,0,0,-1,-1,-1,0,0,-1,0,0,0,1,0,0,0,0,-1,1,0,-1,-1,-1,0,-1,0,-1,0,-1,-1,0,0,0,0,-1,0,-1,0,0,-1,-1,0,0,0,0,0,0,0,-1,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,0,0,-1,-1,0,0,0,0,0,0,0,-1,0,-1,0,-1,0,0,-1,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,-1,0,-1,-1,0,-1,0,0,0,0,1,0,-1,0,0,0,0,0,-1,0,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,-1,-1,0,0,0,-1,-1,0,-1,0,0,0,0,0,0,-1,0,0,0,-1,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,-1,-1,0,-1,-1,-1,0,0,-1,-1,0,-1,-1,0,0,-1,0,0,-1,-1,-1,0,0,0,-1,0,0,0,-1,0,0,0,0,-1,0,-1,-1,0,0,-1,0,-1,-1,-1,0,0,-1,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,0,0,1,-1,-1,0,-1,0,-1,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,-1,0,-1,0,0,0,0,0,0,0,-1,-1,0,-1,-1,0,-1,0,0,-1,0,-1,-1,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,-1,-1,0,0,-1,-1,-1,-1,0,0,0,-1,0,-1,-1,0,0,-1,-1,0,-1,-1,0,-1,1,0,0,-1,-1,0,0,0,0,0,-1,0,0,-1,0,0,0,0,0,0,0,-1,-1,-1,0,-1,0,-1,0,0,-1,0,0,-1,-1,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,-1,-1,-1,-1,0,0,-1,1,1,0,0,0,0,0,0,0,-1,0,0,0,-1,-1,-1,0,0,0,0,-1,-1,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,0,-1,-1,0,0,-1,-1,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,-1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,0,-1,-1,0,0,0,-1,0,0,0,-1,-1,0,-1,0,-1,0,-1,0,-1,0,-1,-1,0,-1,-1,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,0,-1,-1,-1,-1,-1,0,0,0,-1,0,0,-1,0,-1,-1,-1,0,0,-1,0,-1,-1,0,0,-1,-1,0,0,-1,-1,-1,0,-1,0,0,0,0,1,0,0,0,0,0,0,-1,0,-1,-1,-1,-1,0,-1,-1,0,0,0,0,0,-1,0,-1,0,-1,-1,-1,0,0,1,0,0,0,0,0,-1,0,0,0,-1,-1,-1,0,0,0,0,0,-1,0,-1,0,-1,0,0,0,0,0,0,0,-1,0,-1,-1,-1,0,0,0,-1,0,0,0,0,-1,-1,0,-1,0,0,-1,-1,0,0,0,0,0,0,-1,-1,-1,-1,0,0,0,-1,-1,0,0,0,-1,0,0,0,0,0,-1,-1,-1,0,0,-1,0,0,0,-1,-1,0,1,2,0,-1,0,0,2,-1,0,0,0,0,1,0,0,0,0,2,-1,2,-1,-1,-4,-2,0,2,1,0,0,-1,-1,0,1,-1,-1,0,-1,-1,-2,-2,-1,-2,0,1,0,-1,1,0,-1,0,0,0,0,1,-1,1,-1,0,-1,0,0,0,1,0,0,0,-1,0,0,0,0,1,-2,2,-1,0,-1,0,0,0,0,-2,2,-2,0,0,-1,0,-1,0,-1,-1,0,0,0,1,2,0,1,0,-2,2,0,0,-1,0,0,1,-1,1,-2,0,0,0,1,0,1,0,0,0,-1,0,-1,2,0,1,0,1,-1,0,-3,-3,-2,1,0,2,-1,2,1,0,-1,-2,-1,-2,-1,0,-1,-1,-1,-1,-1,1,2,0,-1,0,2,-1,-1,2,-2,0,0,3,-2,-1,-1,0,-1,0,0,-1,0,-3,0,-1,1,0,0,2,-2,2,2,1,-1,0,-2,-1,-2,0,3,0,-1,0,0,-1,0,0,-1,0,-1,0,0,0,1,0,1,1,2,-2,-2,-2,-2,0,1,1,2,-4,1,-1,0,-2,1,0,1,-2,-1,-1,1,0,1,2,0,1,-2,2,-2,1,1,0,0,0,0,4,-2,0,1,-2,-1,0,-1,0,-1,1,0,0,0,0,1,0,1,0,1,-2,0,-1,-1,1,0,1,1,-2,0,-1,0,1,0,0,2,0,-3,1,2,0,-1,1,-1,-1,1,1,-1,0,2,-2,-1,1,0,0,0,-1,0,1,-1,0,0,0,-1,1,-3,-1,1,-1,0,1,-1,1,-1,-1,0,1,0,-1,1,0,-2,1,-1,-2,1,-1,0,0,-2,0,0,0,0,1,0,0,-1,-1,1,0,-1,0,-1,-1,0,0,3,1,-1,0,0,0,0,0,0,0,1,-1,-1,1,1,0,1,2,-1,1,0,-1,-1,1,-1,-1,0,0,1,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,1,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,-1,0,0,1,2,-2,0,1,-3,-1,1,-1,-1,-1,-1,-2,-2,-3,-3,-3,-2,-1,1,-2,-1,1,-2,0,0,1,2,-1,0,2,1,0,1,1,0,1,-1,1,0,1,-1,-1,1,1,1,1,-1,0,0,0,-1,0,0,1,1,0,0,0,-1,0,1,-2,1,0,-1,1,0,0,1,2,2,0,1,0,0,0,1,1,0,1,1,1,1,0,1,-1,0,0,-1,-1,-1,-1,-1,0,-2,-1,-1,1,1,1,0,0,-1,0,1,0,0,1,0,0,-1,0,0,0,0,1,-1,1,-1,-1,0,0,2,2,0,0,0,-1,0,0,-1,-1,0,0,1,0,0,0,1,-1,0,1,2,0,0,-1,-1,-1,0,0,0,1,0,-1,0,-1,-1,-1,2,0,2,-1,-2,1,-1,-1,-1,0,1,0,-1,0,1,0,0,1,0,0,1,-2,-2,-2,0,-1,2,2,-1,-1,2,0,-4,0,-1,2,0,0,-5,-2,1,-2,0,1,-1,1,-1,1,-2,1,-3,0,0,0,-1,-1,1,0,1,-4,0,0,0,0,0,-2,-1,-1,-1,-1,1,1,0,0,-1,-1,1,1,0,0,1,-2,2,-1,0,-1,-2,1,0,0,-2,2,-1,-2,0,-1,0,0,1,0,0,-1,-3,0,0,1,2,1,-1,1,0,-1,1,-3,1,0,1,0,-1,1,-2,0,-2,-1,0,1,-1,-1,2,1,0,-1,1,0,-1,1,-1,0,1,1,1,2,0,1,-4,-1,-2,1,1,-4,1,1,0,0,-2,0,-4,-1,2,-3,0,-1,-3,1,1,0,1,-3,0,0,2,-2,1,-2,0,1,-3,2,0,0,-2,0,1,0,-1,2,0,-3,2,1,0,-4,0,1,-1,0,0,1,0,1,-4,-3,1,-3,-1,1,0,-1,-1,1,-4,-1,-1,-2,0,-1,0,0,3,0,-1,-1,0,1,1,0,-1,0,-4,0,-1,0,0,1,0,-1,0,-1,1,-2,1,1,1,1,-1,-1,-1,-1,1,0,-1,2,-5,1,0,-1,0,-2,1,0,0,-1,1,-1,0,0,1,-1,1,0,1,1,-5,0,1,-2,0,0,2,-1,-1,1,-3,-1,1,1,0,1,-1,1,-1,-1,-1,3,-1,0,0,-1,3,-2,0,0,0,-1,0,-1,1,-1,-1,-3,-2,3,-2,4,1,-1,1,-1,-5,1,0,1,0,2,0,1,0,-2,0,1,-1,1,1,0,0,0,-3,-1,-1,1,-1,0,0,-1,1,-4,1,1,0,0,1,1,-1,-1,-4,0,2,2,0,1,1,0,-2,-1,0,3,-1,-1,-1,-1,0,-1,-2,-1,2,1,-2,2,0,0,0,-4,-1,0,1,-1,0,1,0,-1,-3,2,1,1,0,2,0,1,0,-4,0,1,2,0,0,0,0,-1,-5,-1,-1,0,-1,2,1,0,1,0,-1,5,-3,2,2,0,0,2,0,2,0,1,2,2,2,4,2,-1,0,4,-2,1,1,0,-1,0,-4,-1,1,-2,2,0,-4,1,-1,-5,1,1,1,1,2,-1,0,-2,-2,2,1,1,-1,0,0,-2,0,-1,1,0,0,1,1,-3,1,-4,-4,2,1,0,1,2,-3,-1,-2,-2,-1,-1,0,-1,1,0,0,1,-5,-2,2,0,1,0,0,1,1,-3,1,-1,0,0,3,1,1,1,-3,0,0,-1,-1,0,1,-1,-1,-1,-3,-1,-3,0,0,-1,-1,1,-1,1,1,0,3,0,0,1,-3,-1,-1,0,0,-1,0,1,0,0,0,-1,4,1,1,1,-1,-1,-4,-3,2,-1,2,1,1,1,-1,0,-2,1,0,-1,1,0,-2,-1,-1,0,0,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,-1,0,0,-1,0,0,0,0,0,-1,0,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,0,-1,0,-1,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,0,0,0,0,0,0,-1,-1,0,0,0,0,0,0,0,-1,0,0,0,0,-1,0,-1,0,0,0,0,-1,0,-1,-1,0,-1,0,0,0,0,0,-1,0,-1,-1,-1,0,-1,0,-1,0,0,0,0,0,0,-1,-1,0,0,0,0,0,-1,-1,0,0,0,-1,-1,-1,0,0,0,0,0,0,-1,0,-1,0,-1,0,0,-1,-1,0,-1,0,0,0,-1,-1,0,0,-1,0,0,-1,0,0,0,0,-1,-1,0,-1,-1,0,0,-1,0,-1,0,-1,0,-1,0,0,0,-1,0,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,-2,0,-1,-2,2,0,-2,4,0,-1,-1,1,0,0,0,-1,1,0,-2,0,-1,-1,1,-6,-1,0,0,1,-3,2,-1,1,-2,0,3,1,-2,-1,-1,-2,1,-2,-1,-1,0,-1,2,1,0,0,1,1,-3,-1,0,1,1,-1,0,0,1,0,0,-2,0,-1,0,-1,0,0,-1,0,0,0,1,-1,2,1,-1,4,0,1,1,0,0,1,0,1,0,1,0,0,0,-1,-1,1,1,-2,1,-1,0,-1,1,1,-1,1,3,-1,1,2,0,1,-1,-1,1,-2,0,-1,1,0,-1,-1,0,-1,-3,0,-1,-1,1,-1,1,-1,0,2,-2,-2,0,0,-1,-1,-4,0,0,-3,-1,1,0,-1,0,-2,0,-2,-1,-1,-3,1,1,0,1,1,2,1,1,-1,0,0,1,-2,1,2,1,0,2,0,0,0,-1,1,-2,0,1,0,-1,1,1,-2,0,3,0,0,0,-1,-1,2,-2,0,2,0,-1,3,0,-1,0,1,-1,-2,0,-1,-2,2,-3,-1,1,-2,1,1,-4,-1,-1,0,0,-1,1,-3,-2,-1,3,1,0,-1,0,1,-4,2,1,1,1,1,1,1,0,0,1,-3,0,0,0,-3,-1,0,3,0,0,1,0,-1,0,0,0,-1,0,0,0,-1,0,3,-4,1,2,1,-1,0,0,-2,-1,0,0,-1,0,-1,-1,0,0,-2,-1,1,-3,0,0,1,-1,1,1,1,0,-1,-1,0,1,0,0,1,-1,1,1,0,-1,2,1,0,0,1,0,0,0,-1,2,1,1,-1,0,0,0,0,0,2,-2,-1,-2,0,2,-1,0,-1,0,-1,1,-1,-1,1,-1,0,0,1,-1,0,0,1,0,1,0,-1,-1,-1,1,0,-1,0,0,1,0,0,-2,0,0,0,1,0,1,-1,-1,-1,0,-2,0,1,0,1,0,0,-2,2,-1,0,1,-1,0,2,-2,-1,0,0,-1,0,-1,-1,0,0,0,1,-1,1,1,-1,1,0,-1,-1,1,-1,0,1,0,0,-1,0,-2,-1,0,0,-1,0,0,1,-1,0,-1,1,-1,-2,-2,-1,-1,-1,-2,0,0,1,2,-1,2,0,3,-1,2,0,0,2,-1,-1,-2,3,-1,1,-2,0,0,0,1,-1,-2,1,1,-1,1,1,-1,1,-1,0,1,-1,3,-1,-1,-1,-1,0,1,0,1,1,0,0,1,0,-1,0,0,1,-1,-1,1,-1,0,-1,-1,0,1,-2,2,2,-1,0,2,-3,1,-1,-1,1,-2,-1,0,0,-1,0,2,-1,0,0,-1,0,-1,2,-2,0,1,-2,0,0,0,2,-2,-1,0,2,0,-1,-1,-1,0,-1,0,0,-1,0,1,-1,0,-1,-1,-1,0,0,1,-1,3,0,0,-2,0,1,0,0,0,-1,1,2,-1,0,-1,1,0,-2,1,-2,-2,2,0,-1,2,0,-2,0,1,0,1,0,0,-1,0,-1,-1,-1,-2,1,0,-1,1,1,0,-4,-1,-2,2,1,0,-1,0,1,1,2,-1,4,-3,-2,-1,0,1,-4,-2,0,0,-1,1,-1,0,-1,-2,0,-1,0,0,0,0,1,1,1,1,-1,0,-1,0,-1,0,1,0,1,0,0,-1,0,1,-1,0,0,0,-1,-1,0,-1,-2,-1,-1,1,0,-1,1,-2,1,-1,0,0,1,0,3,0,0,1,0,0,0,0,-1,-1,-1,1,1,-1,1,-1,0,-1,-1,-1,-1,0,0,1,-1,-1,1,-2,0,-2,-2,-1,0,-1,-1,0,2,1,0,0,2,3,-1,1,-2,-2,0,-2,0,1,1,1,-3,0,-2,2,0,-1,1,0,1,1,0,-2,2,0,-1,-1,1,1,0,1,-1,0,2,-1,-1,1,0,-2,-1,0,0,1,0,2,-2,0,-1,-1,-1,0,0,0,0,1,1,1,1,0,-1,-1,0,0,0,-1,0,0,-3,-1,0,0,-1,1,-1,-1,0,2,-1,2,1,1,3,1,0,0,1,0,1,1,-1,1,-2,-1,-1,-1,0,-1,-1,-1,-2,0,-1,1,0,0,0,0,3,2,3,1,-1,-1,-1,0,0,-1,1,0,0,0,-1,0,1,-1,-1,1,0,0,0,-1,0,0,2,0,0,0,0,-1,2,-2,0,-1,1,1,-1,0,0,-1,5,-1,1,1,0,-2,-3,0,1,1,-1,0,1,1,0,0,1,-1,3,1,0,2,-2,0,0,-2,-1,0,-1,0,0,-1,0,-2,2,0,1,-1,1,0,0,0,0,1,0,-2,0,1,-1,0,0,1,2,1,-2,1,1,0,-1,1,-1,-1,1,-1,-1,1,0,1,0,0,0,0,0,-1,0,0,0,-1,-1,1,-3,-3,-2,1,-2,1,1,1,0,1,-2,0,0,1,1,1,1,1,1,0,-1,1,0,1,-1,0,0,-1,-1,-2,1,0,-1,2,1,1,0,-1,1,0,1,0,0,0,1,-2,1,0,-1,1,1,0,0,-2,1,0,0,-1,1,3,-1,1,1,0,-1,1,-1,1,0,-1,0,-1,3,1,-2,-1,2,-2,-1,-1,-2,0,-2,-1,1,0,0,1,0,0,0,-2,1,-1,-1,0,1,1,1,-1,0,-3,0,1,0,0,-3,-1,1,-1,1,2,0,0,1,-2,-1,0,-2,-1,0,0,0,2,1,2,2,2,-3,0,1,-1,-1,0,0,1,0,0,0,1,2,0,1,-1,1,0,-1,-1,0,0,1,1,2,-3,2,-1,0,0,0,0,0,0,3,1,-1,1,2,0,2,-1,-2,-1,0,0,0,0,0,0,0,0,0,3,-1,2,0,-1,2,-2,-3,1,-1,1,1,0,-1,1,1,1,1,0,1,0,1,1,0,0,-4,-2,-1,0,0,0,2,-1,0,0,-1,0,1,0,0,-1,0,1,0,2,0,4,-2,1,1,-1,-2,0,-3,0,1,1,-2,0,3,1,2,2,-1,3,-2,-2,-1,0,0,0,-2,-1,0,0,-2,-2,1,-1,-1,0,0,2,0,0,0,2,1,-2,-1,0,0,1,-1,-1,2,2,0,0,0,0,0,1,-1,2,-1,0,-3,0,0,-2,-1,1,1,-1,1,-2,0,-1,0,-1,-1,1,1,0,-1,0,0,0,0,0,0,-1,-1,-1,-1,1,-1,0,0,1,0,0,-3,0,2,0,-1,0,1,0,0,1,0,2,-1,1,1,0,0,0,0,0,-1,1,1,2,4,1,2,1,0,3,-1,0,-1,0,0,0,-4,1,-1,-1,1,1,-3,2,-1,-2,-1,1,0,0,0,2,1,0,-1,0,3,0,0,0,1,-1,1,1,-2,-1,-1,2,1,-1,0,2,-1,-2,0,1,0,-1,1,2,1,-2,-1,0,-1,-1,-1,2,0,-1,-2,0,1,0,0,2,0,0,0,-1,1,2,0,0,1,1,1,1,0,0,0,0,0,-2,0,-1,-1,1,-1,2,-3,-1,-3,-1,1,0,-3,0,-1,-1,2,0,-1,2,0,0,0,0,0,-1,0,1,-1,0,-2,0,-1,0,0,0,-1,-1,2,-1,-1,1,1,1,-1,2,0,-1,-1,2,-1,-1,0,1,-3,1,0,0,2,-2,2,1,0,1,2,-2,0,0,0,1,1,1,-1,0,0,0,1,3,0,2,-1,0,1,-1,0,-2,1,-2,-1,0,0,2,1,1,-1,-1,0,1,-1,1,2,0,0,-1,0,1,-1,1,2,-1,2,0,-1,1,1,0,0,2,1,-2,-1,0,0,1,-1,0,0,0,-1,-1,-2,0,0,0,-1,-1,3,-1,-1,-3,0,0,-2,0,0,2,1,1,-1,-1,2,-1,0,1,0,0,1,-1,0,1,0,0,-1,2,-2,0,-1,0,2,0,0,1,-1,0,0,-1,0,1,0,0,2,-1,2,-2,1,0,-2,2,1,-1,2,0,2,0,1,-2,0,0,-1,1,0,0,-1,2,-1,2,0,0,0,0,3,0,-2,0,0,-3,0,1,-2,0,-3,0,1,-1,-1,1,2,0,0,0,1,-1,0,1,0,0,2,2,-1,-2,0,2,-1,0,2,-4,1,-2,0,3,-1,0,2,0,-2,0,0,1,1,-1,0,1,-1,1,0,0,-2,0,0,0,1,1,1,2,0,1,-1,-2,0,0,0,-1,0,1,0,0,0,0,2,-2,0,-1,1,1,0,0,-1,1,1,0,3,0,-1,1,0,-1,2,0,-3,-1,-1,0,0,-1,0,1,0,1,0,-1,-2,3,3,-1,0,1,-3,0,-1,1,0,-1,0,1,0,1,2,0,0,-1,0,0,0,0,-3,0,-3,2,-2,-2,-2,0,-1,0,0,0,-1,-1,0,-1,0,-1,-1,0,-1,-3,-1,1,1,0,2,0,0,1,-1,0,1,3,0,-2,0,-1,0,-2,-1,2,0,-1,2,-2,0,0,0,0,1,2,-2,0,0,0,-1,-1,0,1,2,-1,-1,3,1,-1,1,0,0,1,-1,-1,-2,0,0,0,0,0,-1,0,-1,-1,0,0,0,1,-1,0,-3,1,-1,0,0,0,-1,0,0,0,-1,-1,-2,0,0,1,0,1,0,0,1,0,0,0,0,0,1,-2,0,-2,0,0,-1,0,0,1,-1,0,0,1,0,0,0,0,-1,0,0,0,-1,1,-1,0,1,0,-4,0,-2,0,0,-2,0,1,0,-2,0,1,0,-3,3,-2,0,1,0,-2,1,0,-1,0,0,1,2,-2,-1,0,0,2,-1,1,0,0,-2,-1,-1,1,0,0,0,-2,-1,1,0,-4,-1,0,0,0,0,1,0,-1,1,0,0,-1,0,1,1,-2,-1,0,0,1,1,-1,2,-2,1,0,0,-1,0,-1,1,2,1,0,0,1,0,0,1,0,0,1,-1,0,-2,0,-2,0,0,-1,0,1,-2,0,0,0,1,-1,1,1,1,1,1,1,0,0,0,0,0,0,0,-1,0,-1,2,-2,0,0,-1,-1,-2,0,1,-1,1,0,1,-1,0,-1,-1,-1,0,1,1,0,0,-1,2,0,-2,0,-1,1,0,0,2,0,0,0,-1,0,0,-1,0,0,0,1,2,1,1,0,-1,-1,0,-1,1,1,-1,1,-2,0,1,1,-2,1,1,2,0,0,-1,-1,0,1,0,0,0,-1,-1,-1,-1,-1,0,1,2,-1,0,1,-1,0,0,-2,-1,1,0,-1,0,-1,0,0,0,0,0,0,-1,1,-2,-1,1,0,-1,1,0,0,1,0,0,-1,0,-1,1,-1,-1,0,-1,0,-1,-1,1,0,-2,0,1,-1,0,0,0,0,1,0,0,0,-2,0,-1,0,0,1,0,-1,0,-1,0,-1,0,0,1,1,1,0,0,0,2,-2,0,-1,-2,0,-1,-2,1,-1,1,0,2,0,0,0,-2,1,-1,-2,-1,1,1,-1,0,1,-1,2,1,0,0,0,0,0,-2,1,1,-2,0,0,0,-1,-1,-2,2,-1,0,0,1,-1,1,0,0,0,3,0,0,2,0,0,1,-2,0,1,-1,0,0,0,-1,0,-1,-2,-1,-1,0,2,1,0,1,1,-2,0,0,0,-1,-1,0,0,-2,-1,-1,0,0,0,-1,-1,-1,-1,-1,0,0,0,1,1,1,0,0,0,1,-2,-1,0,-1,-1,0,1,-4,1,0,0,0,1,0,0,0,0,0,0,1,-1,1,1,0,-2,0,2,-2,-1,1,1,0,1,-2,-1,0,0,1,1,-2,-1,0,-1,-1,-2,-1,0,-4,1,1,-2,0,0,-3,0,0,0,0,0,-1,-1,0,0,0,2,0,1,-1,1,2,1,-2,1,-1,0,-1,1,-2,1,0,-1,-2,0,1,0,-1,-1,0,2,-1,-1,-1,0,-1,1,-1,0,0,0,0,0,0,-2,1,-1,0,0,1,1,0,0,0,1,0,-1,0,1,0,2,0,-1,1,0,2,1,-2,0,0,-2,0,0,0,-2,-1,0,-1,0,1,-1,1,0,0,0,0,-1,-1,-1,-1,0,0,0,-1,-2,-1,1,-1,1,0,0,1,-1,0,1,0,0,-1,0,0,1,0,0,1,2,0,2,0,0,-3,0,-3,1,0,-1,-2,0,-3,0,-1,-1,0,0,0,-2,0,-1,-2,2,0,1,-2,1,1,-1,1,1,0,-1,0,0,0,0,0,-1,1,0,1,0,1,-2,-1,1,-1,1,0,0,0,2,-2,2,-1,0,1,-1,-1,-1,0,0,0,0,0,0,0,1,1,0,0,-1,1,-1,1,1,0,1,0,0,1,0,0,0,2,-1,-1,0,0,0,-1,-1,2,-2,0,1,0,-1,0,2,0,1,0,-1,-1,1,0,0,-1,0,-2,0,-1,-1,-2,-1,-1,-3,3,2,-2,1,1,1,-1,0,0,0,-1,1,-1,0,1,0,1,0,0,2,-1,0,1,0,-1,-1,2,0,0,1,0,0,0,0,-1,-2,-2,1,-2,2,-1,0,-1,1,-1,1,1,-2,1,-1,0,0,-1,0,0,-2,0,0,0,0,1,0,1,0,0,0,-1,0,-1,2,1,0,-1,-1,0,0,-1,0,2,1,1,-2,1,0,-1,1,0,0,-1,-1,-1,0,-2,-1,-1,0,1,0,0,0,-1,0,1,-2,-1,1,0,0,0,-1,0,-1,2,0,0,0,0,-1,0,0,-1,0,0,0,1,0,-1,-1,1,-2,0,0,1,0,-1,-1,-1,-1,-1,1,2,1,0,0,0,0,1,0,-1,1,0,0,1,-1,-1,0,-1,0,0,1,0,-1,-1,0,-1,0,1,0,0,0,2,-1,0,1,1,-1,-1,1,-1,-2,-2,-2,0,-2,-2,-1,1,0,2,-1,0,2,-1,-1,0,2,1,-1,0,1,-1,1,1,0,2,1,1,0,-2,0,0,-2,0,-2,0,0,-1,0,2,-1,-1,0,0,-1,0,1,0,0,2,2,-1,1,0,-1,1,-1,0,1,-1,0,1,0,0,-1,-1,-1,-1,-1,-1,1,1,0,0,2,-1,0,0,0,0,-1,-1,-1,-2,-2,-1,1,1,0,0,0,-1,-1,-1,-1,0,1,-1,0,0,0,0,0,0,0,1,1,-1,-1,1,0,-2,1,2,1,0,1,0,-1,0,0,-1,0,1,-2,1,0,-1,-1,-1,3,-2,0,1,0,0,0,-1,0,-1,-1,1,0,-1,-1,0,-2,-1,-2,0,0,1,0,-1,0,1,-1,0,0,0,0,1,0,0,0,1,0,-1,2,1,0,1,0,1,0,-1,-1,-1,-1,-2,-1,-1,0,2,-1,0,1,2,2,0,1,1,-2,-1,-1,0,0,1,0,0,0,0,0,-1,0,0,1,0,1,-2,0,1,-2,1,1,0,-1,1,-1,-1,0,-2,0,1,1,-1,1,-2,0,0,-1,0,1,0,-1,0,0,-1,1,-1,-1,-1,0,0,0,0,-1,0,-1,-1,1,0,-1,-1,-1,0,0,1,0,0,0,-2,0,-1,0,0,-2,0,1,2,0,0,1,-1,-1,-1,0,3,1,1,0,2,-1,1,-1,0,0,0,1,0,0,2,1,1,1,2,2,0,1,1,-1,1,-2,-2,-1,0,-3,0,-1,-1,0,-1,0,-1,-1,-1,0,-2,0,0,-2,1,-1,1,-1,0,-1,0,0,-1,-1,1,-2,1,-1,0,1,0,0,0,1,1,0,0,-1,0,1,-1,0,-1,2,-1,0,0,-2,0,-2,2,3,1,0,1,0,-2,1,0,-1,-1,0,1,0,0,1,1,0,-1,-2,-1,-1,-1,-2,0,-1,0,0,1,0,-1,1,-2,-1,0,-2,0,1,0,1,0,0,-1,1,0,0,1,0,0,0,0,-1,-1,0,0,0,-1,-1,0,-1,1,-2,0,0,1,1,1,-1,-1,0,-1,-2,-1,1,-1,-1,0,0,-1,1,-1,0,1,-1,1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,-1,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,-1,-1,0,0,0,0,-1,0,-1,-1,-1,-1,0,0,0,-1,0,0,0,0,-1,-1,0,0,0,0,0,-1,-1,0,0,0,0,-1,1,0,0,0,0,0,0,0,0,-1,0,-1,-1,0,0,0,-1,0,0,0,0,-1,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,-1,0,0,-1,0,0,0,-1,-1,0,0,0,0,0,0,-1,0,0,-1,0,-1,0,0,0,-1,-1,-1,0,0,-1,-1,-1,0,0,0,0,-1,-1,-1,0,0,0,0,-1,0,-1,0,0,-1,-1,0,0,0,0,-1,0,0,0,0,-1,0,-1,0,0,0,0,-1,0,-1,0,0,0,0,-1,0,0,-1,-1,0,0,-1,0,-1,0,0,0,0,0,-1,0,0,0,0,0,0,-1,-1,0,0,0,-1,0,0,0,0,0,0,-1,-1,-1,-1,0,0,0,0,0,-1,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,0,0,0});
    // // std::shared_ptr<int8_t[]> FC1W(new   int8_t[288*54]{0});
    // std::shared_ptr<int8_t[]> FC1B(new   int8_t[54]{0});
    // std::shared_ptr<int8_t[]> FC2W(new   int8_t[54*10]{1,2,-2,0,-1,-2,0,2,-1,3,-2,0,0,1,-1,0,-2,0,0,1,1,1,0,-2,0,-2,-1,0,0,-2,0,-1,-5,1,1,1,0,-2,-2,-3,-2,1,-1,-1,-2,1,0,0,-2,1,-1,1,1,0,-3,-3,-1,0,-1,2,-3,0,1,0,-2,1,-1,-2,1,-1,-2,0,-1,0,-3,0,0,-1,-3,-2,-2,0,0,-3,-1,1,-3,-4,0,0,0,-1,2,0,-3,0,4,-2,-3,-3,-2,1,-1,2,-4,0,-1,-1,0,-2,-1,0,2,-2,-1,-1,-1,0,1,-1,1,3,1,-2,-1,0,2,-1,2,1,-3,0,0,2,1,-1,-1,-2,-2,-1,-3,-1,0,0,0,0,2,-2,-5,-1,-2,-1,-2,0,-1,-1,1,-2,1,-2,-1,0,1,-1,-3,0,-3,-3,-2,-1,1,0,-1,0,-1,-2,2,3,0,0,-1,0,1,1,2,-2,-2,-3,1,1,0,-2,-1,2,-1,0,0,-1,0,-2,0,1,-5,0,-1,-2,-2,-3,2,-1,-1,1,1,0,2,0,-1,-4,2,-1,-1,-3,-1,-2,-2,-1,2,-1,-1,1,1,0,1,0,0,0,-2,0,-1,-1,-1,2,-1,0,-1,-2,0,-1,-3,1,1,-1,0,2,1,2,-5,0,-2,1,-1,-2,-2,-2,0,0,1,0,-1,0,-1,1,1,-1,2,1,1,-1,-1,-3,1,1,1,-1,-3,-1,-3,1,0,-1,-4,1,0,0,-3,-6,0,0,-1,4,-2,-2,-2,-4,0,1,0,-2,-3,-1,2,-1,0,0,1,1,3,1,-1,-5,-2,-6,0,0,0,1,-1,1,0,-1,0,2,-1,-1,-1,0,-1,-1,-1,0,2,0,0,-1,1,0,-1,0,2,1,0,0,0,-2,-1,-2,-4,0,0,-1,-1,-1,1,-2,-5,1,-1,1,2,-1,0,-1,0,1,2,2,0,1,2,-1,0,1,-2,2,-2,-4,-2,-2,-1,0,0,-2,-5,0,-3,0,-2,1,-6,0,1,1,-1,-7,2,1,0,-2,1,-2,0,-4,0,-1,0,1,-3,2,2,0,-1,-2,1,0,-1,-1,2,-6,-2,-7,-1,0,2,-2,-1,0,-1,2,2,-1,-2,-1,1,-1,0,0,-2,2,-2,-1,1,1,-2,0,-1,2,1,-4,-2,-1,0,-2,3,3,-5,-1,0,0,1,1,0,-1,-5,-1,-2,1,1,3,0,3,-1,-4,-2,-3,-1,0,0,1,1,0,0,1,-1,-3,-1,-2,-1,-1,1,-2,-1,0,-2,0,-3,0,-5,0,-2,2,1,-5,1,0,0,0,0,-3,3,-5,0,1,0,1,-1,-2,0,-1,1,-3,-1,0,-1,-2,0,-3,-4,-6,-2,0});
    // std::shared_ptr<int8_t[]> FC2B(new   int8_t[10]{0});

    // Tensor input  = Tensor(INPUT,{1,1,28,28});
    // Tensor conv1w = Tensor(CONV1W, { 32, 1, 3, 3 });
    // Tensor conv1b = Tensor(CONV1B, { 1, 32, 1, 1 });
    // Tensor conv2w = Tensor(CONV2W, { 32, 32, 3, 3 });
    // Tensor conv2b = Tensor(CONV2B, { 1, 32, 1, 1 });
    // Tensor fc1w = Tensor(FC1W, { 1, 54*288, 1, 1 });
    // Tensor fc1b = Tensor(FC1B, { 1, 54, 1, 1 });
    // Tensor fc2w = Tensor(FC2W, { 1, 10*54, 1, 1 });
    // Tensor fc2b = Tensor(FC2B, { 1, 10, 1, 1 });
